我在带有网格的wpf应用程序中有一个窗口。 网格的背景值为十六进制。 我只想从后面的代码中检查该背景的值是否真的是我的意思。
<Grid Background="#424242" Name="GridMain">
在后面的代码中,我得到了:
SolidColorBrush a = new SolidColorBrush();
var b = (SolidColorBrush)new BrushConverter().ConvertFrom("#424242");
MainWindow mainWin = Application.Current.MainWindow as MainWindow;
if (mainWin.GridMain.Background == b)
MDark.IsChecked = true;
我不得不提到MDark是单选按钮。 而且条件永远不会成立。 感谢您的帮助。 :D
答案 0 :(得分:2)
您正在比较SolidColorBrush
个实例,这显然是不同的。比较实际的颜色值:
var c = (Color) ColorConverter.ConvertFromString ("#424242");
MainWindow mainWin = Application.Current.MainWindow as MainWindow;
if (((SolidColorBrush) mainWin.GridMain.Background).Color == c)
{
MDark.IsChecked = true;
}