Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#代码隐藏中xaml等效项的自定义颜色_C#_Wpf_Xaml - Fatal编程技术网

C#代码隐藏中xaml等效项的自定义颜色

C#代码隐藏中xaml等效项的自定义颜色,c#,wpf,xaml,C#,Wpf,Xaml,我在wpf应用程序中有一个具有网格的窗口。 网格有一个十六进制的背景值。 我只是想从代码背后检查一下背景的价值是否是我真正的意思 <Grid Background="#424242" Name="GridMain"> 我必须提到,MDark是一个单选按钮。 这种情况永远不会变成现实。 我感谢你的帮助D您正在比较SolidColorBrush实例,它们显然不同。比较实际颜色值: var c = (Color) ColorConverter.ConvertFromString ("#4

我在wpf应用程序中有一个具有网格的窗口。 网格有一个十六进制的背景值。 我只是想从代码背后检查一下背景的价值是否是我真正的意思

<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()
。或者比较
颜色
值。