Windows Phone 7,可以使用笔划颜色的条件语句

本文关键字:颜色 条件 语句 Phone 可以使 Windows | 更新日期: 2023-09-27 18:00:38

我在这件小事上遇到了很多麻烦,我希望有人能回答。

我有一个名为"Three"的矩形,默认为Stroke="#FF123123",如果有人点击该矩形,它会将笔划颜色(边框)更改为

Three.Stroke = new SolidColorBrush(Colors.Yellow);

如果有人再次点击它,我希望它能变回Stroke="#FF123123"的原始颜色。我已经有了代码,这不是问题。问题是,如果一开始就更改了,我如何创建一个条件语句来将其更改回来?

我不能做一个条件声明:

"If(Three.Stroke==Colors.Yellow){}"

当我收到错误时:

运算符"=="无法应用于类型的操作数’系统。Windows。媒体刷和’系统。Windows。媒体彩色

Windows Phone 7,可以使用笔划颜色的条件语句

将两个笔刷实例的数组保留在某个位置。如果矩形的笔刷是其中之一,请切换到另一个(而不是当场创建新实例)。

错误很简单:你试图将画笔本身与画笔的可能颜色进行比较。您可以确定当前画笔的颜色并进行比较,但上述方法可能更简单。

这不是您问题的直接答案,但也许您可以使用ToggleButton来代替Rectangle,并声明性地应用基于IsChecked属性的样式?

Stroke属性的类型为BrushSolidColorBrush是其子类。如果要访问SolidColorBrush的属性,则需要将Stroke的值强制转换为SolidColorBrush:

Color currentColor = ((SolidColorBrush)Three.Stroke).Color;
if (currentColor == Colors.Yellow) {}