次の行の色のリソース ディクショナリがあります。
<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のすべての場所...考えですか?