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

时间:2011-07-01 03:30:11

标签: c# windows-phone-7

我正在尝试基本上创建一个切换按钮来更改Windows Phone 7应用程序的背景颜色。

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

LayoutRoot.Background = new SolidColorBrush(Colors.White);

在我完成之后,我想在if语句中检查LayoutRoot.Background的值(用作切换)。这是我遇到问题的地方。我似乎无法想出一种方法来检查这个价值。

当我执行LayoutRoot.Background.ToString()时,我会将System.Windows.Media.SolidBrushColor作为值返回。我认为这是有道理的,因为背景是SolidBrushColor。但是我如何才能访问该值,所以我可以在if语句中查看它?

1 个答案:

答案 0 :(得分:2)

你可以这样做:

SolidColorBrush brush = LayoutRoot.Background as SolidColorBrush;
if (brush != null) {
    if (brush.Color == Colors.White) {
        // Do something
    }
}

其他可能的画笔包括LinearGradientBrush和RadialGradientBrush,因此SolidColorBrush只是众多画笔类型中的一种。这就是为什么有一个if语句检查null。