我用按钮制作视图,我想在点击时更改颜色。 我希望按钮具有默认颜色,并在第一次单击时将其颜色更改为另一种颜色。
为了做到这一点,我想保持干净,所以,我把画笔保存在resourceDictionary中。
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
<SolidColorBrush x:Key="WeekCalendarDefaultCellColor" Color="#FFE5CC"/>
<SolidColorBrush x:Key="WeekCalendarClickCellColor" Color="#FFFF00"/>
</ResourceDictionary>
对于MVVM,我将我的按钮画笔绑定到属性(如果我自己设置颜色绑定有效,但我想在整个应用程序中使用相同的颜色,所以我认为最好从字典中取出它)
public SolidColorBrush CurrentBrush =//????;
现在我想将我的字典中的画笔插入此属性,如何将字典中的画笔提取到视图模型?
提前感谢所有帮助者!
答案 0 :(得分:0)
如果您在后面的代码中使用它,此代码将起作用:
button.Background = (Brush)FindResource("ButtonNormalBackgroundBrush");
BUT!你说你想要把它弄干净。
对于MVVM,我将我的按钮画笔绑定到属性
您不应将按钮画笔绑定到VM属性。 Brush是GUI(在MVVM中查看)部分。 VM应该包含一些状态,比如bool或enum等。你可以用按钮样式读取这个状态并使用触发器来改变背景。