WPF ellipse颜色设置

mznxbc123456 2013-11-09 09:50:28
<Ellipse Name="ellipse1" Width="20" Height="20" Cursor="Hand" ToolTip="警示灯" Margin="35,12,723,512" Fill="Red">

这是我在xaml中设置ellipse颜色为红色。
我现在想在xaml.cs中判断当前这个ellipse1是不是为红色,如果是红色我要把它变成绿色,请问这个该怎么写?
...全文
1248 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mznxbc123456 2013-11-09
  • 打赏
  • 举报
回复
引用 2 楼 wpfLove 的回复:
[quote=引用 1 楼 wpfLove 的回复:] 后台获取ellipse1.Fill,得到的是一个Brush对象,

            bool isRed = (ellipse1.Fill as SolidColorBrush).Color.Equals(Colors.Red);
            if (isRed)
            {
                ellipse1.Fill = new SolidColorBrush(Colors.Green);
            }
Color的Equals方法不是针对引用的判断,而是针对颜色值的判断,或者你自己通过其他方式来判断[/quote]
bool isRed = (ellipse1.Fill as SolidColorBrush).Color.Equals(Colors.Red);
            bool isGreen = (ellipse1.Fill as SolidColorBrush).Color.Equals(Colors.Green);

            if (isRed)
            {
                ellipse1.Fill = new SolidColorBrush(Colors.Green);
            }
            else if (isGreen)
            {
                ellipse1.Fill = new SolidColorBrush(Colors.White);
            }
            else 
            {
                ellipse1.Fill = new SolidColorBrush(Colors.Red);
            }
谢谢了,我就是这样去判断的,实现3种颜色的切换
小猪八Q 2013-11-09
  • 打赏
  • 举报
回复
引用 1 楼 wpfLove 的回复:
后台获取ellipse1.Fill,得到的是一个Brush对象,

            bool isRed = (ellipse1.Fill as SolidColorBrush).Color.Equals(Colors.Red);
            if (isRed)
            {
                ellipse1.Fill = new SolidColorBrush(Colors.Green);
            }
Color的Equals方法不是针对引用的判断,而是针对颜色值的判断,或者你自己通过其他方式来判断
小猪八Q 2013-11-09
  • 打赏
  • 举报
回复
后台获取ellipse1.Fill,得到的是一个Brush对象,

            bool isRed = (ellipse1.Fill as SolidColorBrush).Color.Equals(Colors.Red);
            if (isRed)
            {
                ellipse1.Fill = new SolidColorBrush(Colors.Green);
            }

8,758

社区成员

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

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