使用代码更改WPF按钮的颜色

时间:2017-10-12 07:18:55

标签: c# wpf

我有使用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))}

但它并不适合我,因为我的按钮形状是三角形。

那么,我该如何解决这个问题?

1 个答案:

答案 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将更改多边形的颜色。