Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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# 如何检查网格的当前背景色?_C#_Windows Phone 7 - Fatal编程技术网

C# 如何检查网格的当前背景色?

C# 如何检查网格的当前背景色?,c#,windows-phone-7,C#,Windows Phone 7,我正在尝试制作一个切换按钮来改变WindowsPhone7应用程序的背景色 我正在使用以下代码更改名为LayoutRoot的网格的背景色: LayoutRoot.Background = new SolidColorBrush(Colors.White); 完成后,我想检查if语句中LayoutRoot.Background的值(用作切换)。这就是我遇到问题的地方。我似乎想不出一个方法来检查这个值 当我执行LayoutRoot.Background.ToString()时,我得到System.

我正在尝试制作一个切换按钮来改变WindowsPhone7应用程序的背景色

我正在使用以下代码更改名为LayoutRoot的网格的背景色:

LayoutRoot.Background = new SolidColorBrush(Colors.White);
完成后,我想检查if语句中
LayoutRoot.Background
的值(用作切换)。这就是我遇到问题的地方。我似乎想不出一个方法来检查这个值

当我执行
LayoutRoot.Background.ToString()
时,我得到
System.Windows.Media.SolidBrushColor
作为值返回。我想这是有道理的,因为背景是纯色的。但是如何访问该值,以便在if语句中检查它?

您可以执行以下操作:

SolidColorBrush brush = LayoutRoot.Background as SolidColorBrush;
if (brush != null) {
    if (brush.Color == Colors.White) {
        // Do something
    }
}
其他可能的笔刷包括LinearGradientBrush和RadialGradientBrush,因此SolidColorBrush只是许多可能的笔刷类型之一。这就是为什么有一个if语句检查null