如何解决xaml 样式 - 如何在键上更改颜色
我有下面不同颜色的画笔。
<!-- SolidColorBrush -->
<SolidColorBrush x:Key="Button.Static.Background" Color="#FFddddDD"/>
<SolidColorBrush x:Key="Button.Static.Border" Color="#FF707070"/>
<SolidColorBrush x:Key="Button.MouSEOver.Background" Color="#FFBEE6FD"/>
<SolidColorBrush x:Key="Button.MouSEOver.Border" Color="#FF3C7FB1"/>
对于否定按钮,我想将其更改为红色。 IE。不是静态的,而是切换它们。不是在运行时,(起初)基于某个值..
fx: int I = 0;
<!-- SolidColorBrush -->
<SolidColorBrush x:Key="Button.Static.Background" Color="Red"/>
<SolidColorBrush x:Key="Button.Static.Border" Color="DarkRed/>
<SolidColorBrush x:Key="Button.MouSEOver.Background" Color="LightRed"/>
<SolidColorBrush x:Key="Button.MouSEOver.Border" Color="#Red"/>
我 == 1
<!-- SolidColorBrush -->
<SolidColorBrush x:Key="Button.Static.Background" Color="Yellow"/>
<SolidColorBrush x:Key="Button.Static.Border" Color="DarkYellow"/>
<SolidColorBrush x:Key="Button.MouSEOver.Background" Color="LightYellow"/>
<SolidColorBrush x:Key="Button.MouSEOver.Border" Color="#Yellow"/>
我 == 2
<!-- SolidColorBrush -->
<SolidColorBrush x:Key="Button.Static.Background" Color="Green"/>
<SolidColorBrush x:Key="Button.Static.Border" Color="DarkGreen"/>
<SolidColorBrush x:Key="Button.MouSEOver.Background" Color="LightGreen"/>
<SolidColorBrush x:Key="Button.MouSEOver.Border" Color="#Green"/>
必须有一些聪明的方法来设置默认颜色,而不仅仅是仅限于一种样式的按钮...所以我可以绑定在 xaml 中使用的不同颜色来制作不同样式的按钮..
任何人有想法,请随时发表评论..
解决方法
您可以动态替换资源:
Resources["Button.Static.Background"] = Brushes.Yellow;
为了影响当前引用此资源的任何元素,您需要使用 DynamicResource
标记扩展来引用它:
<TextBlock Text="Test" Foreground="{DynamicResource Button.Static.Background}" />
默认的 Button
模板不使用 DynamicResource
,因此您不能在不修改模板的情况下更改按钮的颜色,例如将 StaticResource
替换为 DynamicResource
。>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。