我有一个颜色的资源字典,其中包含以下行
<SolidColorBrush x:Key="MainProgramBlue" Color="{Binding MainProgramColor}"/>
然后我将此资源字典合并到App.xaml文件等中,因此在我的视图中,我可以将MainProgramBlue用作StaticResource。如果我实际将颜色放入字典中,如下面的颜色
,一切都有效<SolidColorBrush x:Key="LightGrey" Color="#D5D5D5"/>
但是我想将颜色绑定到像这样的视图模型
public class ThemeViewModel : NotificationObject
{
public ThemeViewModel()
{
MainProgramColor = (SolidColorBrush)(new BrushConverter().ConvertFrom( "#F79218" ));
}
private SolidColorBrush mMainProgramColor;
/// <summary>
///
/// </summary>
public SolidColorBrush MainProgramColor
{
get
{
return mMainProgramColor;
}
set
{
mMainProgramColor = value;
Notify( "MainProgramColor" );
}
}
}
但是视图模型似乎没有将MainProgramBlue设置为我想要的颜色。绑定不起作用。即使我这样做了
<Grid Background="{Binding MainProgramColor}">
绑定有效,我的网格背景设置为ViewModel中的颜色。为什么视图模型绑定不能在colors.xaml资源字典中工作?甚至可以这样做吗?
我有一个程序,它使用大约5种颜色,现在它们是硬编码的,但我想将它们全部绑定到属性,以便使用可以设置自己的颜色和主题,我想将它们绑定在资源字典中而不是将它们绑定在xaml中的每个地方...想法?