我有一些椭圆形在画布上。当我点击一个椭圆时,我希望它的描边颜色变成绿色,再次点击时则恢复原本的红色。
我使用了这三种颜色。
我使用了这三种颜色。
SolidColorBrush red = new SolidColorBrush(Colors.Red);
SolidColorBrush green = new SolidColorBrush(Colors.Green);
SolidColorBrush transp = new SolidColorBrush(Colors.Transparent);
当我创建椭圆时,我已经将颜色设置为红色。
Ellipse obj = new Ellipse()
{
Name = "",
Width = width,
Height = height,
Fill = transp,
Stroke = red,
};
如果我在某个椭圆中单击,我会要求描边颜色改变。
if (obj.Stroke == red) obj.Stroke = green;
else if (obj.Stroke == green) obj.Stroke = red;
else obj.Stroke = gray;
但问题是总是进入了else
条件。即使颜色在if
条件中相同,它也会返回false
。并且每次点击我的椭圆时都会变成灰色。
为什么会出现这种情况?我该怎么解决?
编辑:
red
、green
和transp
画刷一次吗?或许你可以直接使用预定义的画刷,如Brushes.Red
等,而不是自己创建。 - Clemens=
就会返回 _错误1:无法隐式转换类型 'System.Windows.Media.Color' 为 'System.Windows.Media.Brush'_。 - Butzke==
,会返回错误信息:_错误1 运算符“==”无法应用于类型为“System.Windows.Media.Brush”和“System.Windows.Media.Color”的操作数_。 - ButzkeBrushes.Red
我遇到了相同的问题。 - Butzke