如何判断当前rectangle或者Ellipse的fill填充色是否是某种颜色 求高人知道

lucas9527a 2017-01-09 11:09:06
我在Canvas里面画了好多圆 圆在鼠标选中后颜色变成Colors.DeepSkyBlue
但是后续我去判断圆的颜色的时候
SolidColorBrush Colors_temp = new SolidColorBrush(Colors.DeepSkyBlue);
bool isDeepSkyBlue = (element as Ellipse).Fill.Equals(Colors_temp); 不起作用
通过打断断点 发现它们值是一样的 可就是 isDeepSkyBlue不返回true布尔值 难道fill和色刷的类型不一样??

SolidColorBrush Colors_temp = new SolidColorBrush(Colors.DeepSkyBlue);
bool isDeepSkyBlue = (element as Ellipse).Fill.Equals(Colors_temp);







以下是部分代码

foreach (UIElement element in Border_Canvas.Children)//遍历当前画布内的点
{
if (element is Ellipse)
{
SolidColorBrush Colors_temp = new SolidColorBrush(Colors.DeepSkyBlue);
bool isDeepSkyBlue = (element as Ellipse).Fill.Equals(Colors_temp);


//isDeepSkyBlue = ((element as Ellipse)

if (isDeepSkyBlue)//判断当前点是不是选中的点 如果是就将数据存入数组
{
Point point_temp = new Point();
point_temp.X = (element as Ellipse).Margin.Left;
point_temp.Y = (element as Ellipse).Margin.Top;
SelectingPoints[i] = point_temp;//将当前点信息存入点数组SelectingPoints[i]
}
}
}
...全文
362 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lucas9527a 2017-01-09
  • 打赏
  • 举报
回复
引用 2 楼 YUNAN_ZHANG 的回复:

                            bool isWhite = (this.elpIndicator.Fill as SolidColorBrush).Color.Equals(Colors.White);
                            bool isGreen = (this.elpIndicator.Fill as SolidColorBrush).Color.Equals(Colors.Green);
这样是可以的。
恩 还是要用as转换一下 不转换就不行,谢谢啦 估计还是 fill类型和brush类型有差别 谢谢啦
Zhang_Yunan 2017-01-09
  • 打赏
  • 举报
回复

                            bool isWhite = (this.elpIndicator.Fill as SolidColorBrush).Color.Equals(Colors.White);
                            bool isGreen = (this.elpIndicator.Fill as SolidColorBrush).Color.Equals(Colors.Green);
这样是可以的。
  • 打赏
  • 举报
回复
转成string一个字符串在使用等号,别用Equals

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧