wpf里如何动态改变一个按钮模板里边的静态资源
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf里如何动态改变一个按钮模板里边的静态资源相关的知识,希望对你有一定的参考价值。
在C#代码里取 矩形的name是取不到的。 只能取到button的值 我现在要在c#里动态改变矩形Fill里的静态资源的值
可以找到模板下面的控件喔,当然也可以修改其属性。给个demo给你前台:
<Grid>
<Button Name="btn" Width="80" Height="30">
<Button.Resources>
<SolidColorBrush x:Key="redbrush" Color="Red"/>
<SolidColorBrush x:Key="greenbrush" Color="Green"/>
</Button.Resources>
<Button.Template>
<ControlTemplate>
<Rectangle Name="rct" Fill="StaticResource redbrush" />
</ControlTemplate>
</Button.Template>
</Button>
<Button Click="button1_Click" Content="Button" Height="23" HorizontalAlignment="Left" Margin="190,222,0,0" Name="button1" VerticalAlignment="Top" Width="75" />
</Grid>
后台:
private void button1_Click(object sender, RoutedEventArgs e)
Rectangle rec = (Rectangle)btn.Template.FindName("rct", btn);
rec.SetResourceReference(Rectangle.FillProperty, "greenbrush");
参考技术A 。。测试了一下,给Rectangle 加 x:Name属性是可以取到的。。你还是看看代码哪里出问题了吧。。想在代码部分动态改变,必须能取到。。。 参考技术B 在矩形 上面 构成控件 然后 设置Name 属性就可以了
以上是关于wpf里如何动态改变一个按钮模板里边的静态资源的主要内容,如果未能解决你的问题,请参考以下文章
[WPF]静态资源(StaticResource)和动态资源(DynamicResource)