来自Xaml的自定义颜色(与C#代码相同)

时间:2019-07-20 09:04:23

标签: c# wpf xaml

我在带有网格的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

1 个答案:

答案 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;
}