WPF C#中多边形polygon是怎么定义的,我想将三角形继承为按钮button, 怎么办呢?

 我来答
376710727
2017-04-01 · TA获得超过8937个赞
知道大有可为答主
回答量:2593
采纳率:100%
帮助的人:1276万
展开全部

你的思路错了。

UI层面,各个控件可以有各种不同的形状,但是微软替你把方法都封装好了,比如下拉菜单是ComboBox ,按钮是Button。

这些控件的功能才是你需要继承的。

所以要实现“三角形的按钮”,你需要的是把一个Button的外观弄成三角形,而不是画一个三角形,然后自己去实现Button的功能(当然硬要这么做也可以,但是工作量很大,而且会有很多问题)

WPF中的Style:

<Button Width="100" Height="30" HorizontalAlignment="Right"
VerticalAlignment="Bottom" Content="Button1"
Template="{DynamicResource ButtonControlTemplate1}" 
Cursor="Hand" Margin="0,0,5,2">
<Button.Resources>
<ControlTemplate x:Key="ButtonControlTemplate1" TargetType="{x:Type Button}">
<Grid x:Name="gd" Background="Transparent">
<TextBlock VerticalAlignment="Top" Text="{TemplateBinding Content}" Foreground="Red" HorizontalAlignment="Center"/>
<Polygon x:Name="ButtonPolygon" Stretch="Fill" Points="0,50,600,50 290,100" Stroke="White" StrokeThickness="0">
<Polygon.Fill>
<SolidColorBrush Color="Gray" Opacity="0.5"/>
</Polygon.Fill>
</Polygon>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="ButtonPolygon" Property="Fill" Value="DarkGray"></Setter>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="ButtonPolygon" Property="Fill" Value="LightGray"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Resources>
</Button>
追问
是在style中加您写的东西吗?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式