C#代码隐藏中xaml等效项的自定义颜色
我在wpf应用程序中有一个具有网格的窗口。 网格有一个十六进制的背景值。 我只是想从代码背后检查一下背景的价值是否是我真正的意思C#代码隐藏中xaml等效项的自定义颜色,c#,wpf,xaml,C#,Wpf,Xaml,我在wpf应用程序中有一个具有网格的窗口。 网格有一个十六进制的背景值。 我只是想从代码背后检查一下背景的价值是否是我真正的意思 <Grid Background="#424242" Name="GridMain"> 我必须提到,MDark是一个单选按钮。 这种情况永远不会变成现实。 我感谢你的帮助D您正在比较SolidColorBrush实例,它们显然不同。比较实际颜色值: var c = (Color) ColorConverter.ConvertFromString ("#4
<Grid Background="#424242" Name="GridMain">
我必须提到,MDark是一个单选按钮。
这种情况永远不会变成现实。
我感谢你的帮助D您正在比较
SolidColorBrush
实例,它们显然不同。比较实际颜色值:
var c = (Color) ColorConverter.ConvertFromString ("#424242");
MainWindow mainWin = Application.Current.MainWindow as MainWindow;
if (((SolidColorBrush) mainWin.GridMain.Background).Color == c)
{
MDark.IsChecked = true;
}
您正在比较
SolidColorBrush
实例,它们显然不同。比较实际颜色值:
var c = (Color) ColorConverter.ConvertFromString ("#424242");
MainWindow mainWin = Application.Current.MainWindow as MainWindow;
if (((SolidColorBrush) mainWin.GridMain.Background).Color == c)
{
MDark.IsChecked = true;
}
为什么?您已经在设计时设置或定义了这些颜色。使用设计器比较颜色。或者将笔刷定义为资源(例如
x:Key=“DefaultBackgroundBrush”
),并在应用程序中重用它们(例如Grid.Background=“{StaticResource DefaultBackgroundBrush}”
。您正在比较实例引用。使用Equals()
。或者比较颜色
值。为什么?您已经在设计时设置或定义了这些颜色。使用设计器比较颜色。或者将笔刷定义为资源(例如x:Key=“DefaultBackgroundBrush”
),并在应用程序中重用它们(例如Grid.Background=“{StaticResource DefaultBackgroundBrush}”
。您正在比较实例引用。请改用Equals()
。或者比较颜色
值。