<UserControl.Resources> <SolIDcolorBrush x:Key="BlackBrush" color="Black"/> </UserControl.Resources>
现在,我想用触发器更改此资源的颜色,以便在发生某种情况时提供突出显示.
这可能吗?如果是这样,怎么样?
谢谢!
解决方法 我不认为您可以从xaml中的触发器更改资源颜色.您可以更改代码隐藏中的颜色,或者将SolIDcolorBrush中的颜色设置为对象的数据绑定属性.
SolIDcolorBrush myBrush = (SolIDcolorBrush)this.TryFindResource("BlackBrush");if (myBrush != null){ myBrush.color = colors.Yellow;}
否则,您需要根据触发器交换画笔.以下是一个例子:
<GrID margin="50"> <GrID.Resources> <SolIDcolorBrush x:Key="BlackBrush" color="Black"/> <SolIDcolorBrush x:Key="WhiteBrush" color="White"/> <Style x:Key="test" targettype="TextBlock"> <Setter Property="Background" Value="{StaticResource BlackBrush}"/> <Style.Triggers> <Trigger Property="Text" Value="white"> <Setter Property="Background" Value="{StaticResource WhiteBrush}"/> </Trigger> <Trigger Property="Text" Value="black"> <Setter Property="Background" Value="{StaticResource BlackBrush}"/> </Trigger> </Style.Triggers> </Style> </GrID.Resources> <TextBlock Height="20" margin="50" padding="50" Style="{StaticResource test}" Text="white"> </TextBlock> </GrID>
这将根据文本值更改背景颜色;如果文本是白色,那么背景是白色,黑色,然后背景是黑色.
总结以上是内存溢出为你收集整理的.net – 用触发器更改SolidcolorBrush资源的颜色?全部内容,希望文章能够帮你解决.net – 用触发器更改SolidcolorBrush资源的颜色?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)