.net – 用触发器更改SolidcolorBrush资源的颜色?

.net – 用触发器更改SolidcolorBrush资源的颜色?,第1张

概述我有一个用户控件,它使用如下所示的画笔资源来为控件中的几个元素提供颜色: <UserControl.Resources> <SolidColorBrush x:Key="BlackBrush" Color="Black"/> </UserControl.Resources> 现在,我想用触发器更改此资源的颜色,以便在发生某种情况时提供突出显示. 这可能吗?如 我有一个用户控件,它使用如下所示的画笔资源来为控件中的几个元素提供颜色:

<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资源的颜色?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1004764.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存