WPF 按钮使用ControlTemplate后无法改变颜色
<UserControl.Resources>
<ControlTemplate x:Key="TemplateTriangle" TargetType="{x:Type Button}">
<Grid>
<Polygon x:Name="ButtonPolygon" Stretch="Fill" Points="0,0 100,0 50,100" Stroke="Black" StrokeThickness="2" Margin="0">
</Polygon>
</Grid>
</ControlTemplate>
</UserControl.Resources>
<Button x:Name="Btn01" Template="{DynamicResource TemplateTriangle}" Width="155" Height="52" VerticalAlignment="Bottom" Margin="10,0,0,10" HorizontalAlignment="Left" Click="Button_Click_2"></Button>
private void Button_Click_2(object sender, RoutedEventArgs e)
{
Btn01.Background = new SolidColorBrush(Colors.DarkRed);
}
我这样做了,但是按钮颜色改不了
<Button x:Name="Btn02" Content="Button" HorizontalAlignment="Left" Margin="210,142,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
private void Button_Click(object sender, RoutedEventArgs e)
{
Btn02.Background = new SolidColorBrush(Colors.DarkRed);
}
这样的却可以,我是漏掉什么了吗?求助...谢谢~ WPF 控件模板 --------------------编程问答-------------------- Btn02改变颜色了,但是会变回去,怎么破? --------------------编程问答-------------------- 样式有问题,修改下:
--------------------编程问答--------------------
<UserControl.Resources>
<ControlTemplate x:Key="TemplateTriangle" TargetType="{x:Type Button}">
<Grid Background={TemplateBinding Background}>
<Polygon x:Name="ButtonPolygon" Stretch="Fill" Points="0,0 100,0 50,100" Stroke="Black" StrokeThickness="2" Margin="0">
</Polygon>
</Grid>
</ControlTemplate>
</UserControl.Resources>
你这样虽然可以改变颜色了,但是改变的不是特殊图形的颜色,而是整个背景色,它是矩形...而且无法修改控件的Content
--------------------编程问答--------------------
你的样式没有做这样的处理,自然是不可以了
--------------------编程问答--------------------
<UserControl.Resources>
<ControlTemplate x:Key="TemplateTriangle" TargetType="{x:Type Button}">
<Grid Background={TemplateBinding Background}>
<Polygon Background={TemplateBinding Background} x:Name="ButtonPolygon" Stretch="Fill" Points="0,0 100,0 50,100" Stroke="Black" StrokeThickness="2" Margin="0">
</Polygon>
<ContentPresenter Content="{TemplateBinding Content}"></ContentPresenter>
</Grid>
</ControlTemplate>
</UserControl.Resources>
样式有问题,修改下:
<UserControl.Resources>
<ControlTemplate x:Key="TemplateTriangle" TargetType="{x:Type Button}">
<Grid Background={TemplateBinding Background}>
<Polygon x:Name="ButtonPolygon" Stretch="Fill" Points="0,0 100,0 50,100" Stroke="Black" StrokeThickness="2" Margin="0">
</Polygon>
</Grid>
</ControlTemplate>
</UserControl.Resources>
你这样虽然可以改变颜色了,但是改变的不是特殊图形的颜色,而是整个背景色,它是矩形...而且无法修改控件的Content
你的样式没有做这样的处理,自然是不可以了
<UserControl.Resources>
<ControlTemplate x:Key="TemplateTriangle" TargetType="{x:Type Button}">
<Grid Background={TemplateBinding Background}>
<Polygon Background={TemplateBinding Background} x:Name="ButtonPolygon" Stretch="Fill" Points="0,0 100,0 50,100" Stroke="Black" StrokeThickness="2" Margin="0">
</Polygon>
<ContentPresenter Content="{TemplateBinding Content}"></ContentPresenter>
</Grid>
</ControlTemplate>
</UserControl.Resources>
<Polygon Fill={TemplateBinding Background} x:Name="ButtonPolygon" Stretch="Fill" Points="0,0 100,0 50,100" Stroke="Black" StrokeThickness="2" Margin="0">
</Polygon>
通过Fill来控制背景 --------------------编程问答-------------------- 你有装blend吗?
补充:.NET技术 , C#