我有使用Polygon-geometry制作的WPF三角形按钮:
Background
所以我的问题是:如何使用C#代码更改Borderbrush
Button
的{{1}}颜色和button.Background = System.Windows.Media.Brushes.Red;
?
当我使用它时:
<Border Background="{TemplateBinding Background}">
<Button.Content>
</Border>
没有任何变化(如果我没有记错,因为它不会改变多边形的填充)。 我知道使用&#34; border&#34;
改变颜色的方法{i:my_dict[i] for i in set(my_dict.keys()).intersection(set(my_list))}
但它并不适合我,因为我的按钮形状是三角形。
那么,我该如何解决这个问题?
答案 0 :(得分:0)
在模板中,将多边形放在网格中,并将网格背景绑定到Button.Background
,同时将多边形的颜色硬编码为Lime
。这样你以后就不能改变多边形的颜色了。相反 - 将多边形颜色绑定到Button.Background
:
<Button Background="Lime"
Content="Button"
Foreground="Transparent"
Margin="0,0,50,0">
<Button.Template>
<ControlTemplate TargetType="Button">
<Polygon x:Name="triangle"
Points="10,10 20,30 30,10"
Stroke="{TemplateBinding Background}"
StrokeThickness="2"
Fill="{TemplateBinding Background}"
Margin="0,0,-91,-85"></Polygon>
</ControlTemplate>
</Button.Template>
</Button>
然后更改Button.Background
将更改多边形的颜色。