wpf里如何动态改变一个按钮模板里边的静态资源 100
在C#代码里取矩形的name是取不到的。只能取到button的值我现在要在c#里动态改变矩形Fill里的静态资源的值...
在C#代码里取 矩形的name是取不到的。 只能取到button的值 我现在要在c#里动态改变矩形Fill里的静态资源的值
展开
3个回答
展开全部
可以找到模板下面的控件喔,当然也可以修改其属性。给个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");
}
前台:
<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");
}
展开全部
。。测试了一下,给Rectangle 加 x:Name属性是可以取到的。。你还是看看代码哪里出问题了吧。。想在代码部分动态改变,必须能取到。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在矩形 上面 构成控件 然后 设置Name 属性就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询