【问题标题】:compare a brush and color比较画笔和颜色
【发布时间】:2011-02-23 08:29:27
【问题描述】:
if (backBrush == SystemColors.ActiveCaption)

这失败了。说你不能比较画笔和颜色。

如何找到画笔的颜色?

【问题讨论】:

    标签: c# colors brush


    【解决方案1】:

    如果 backBrush 是 SolidColorBrush(根据您的尝试可能是这样),您可以使用:

    if(((SolidColorBrush)backBrush).Color == SystemColors.ActiveCaption)
    

    【讨论】:

      【解决方案2】:

      如果画笔是 SolidBrush,您可以比较画笔的 Color 成员。像这样。

      SolidBrush solidBrush = brush as SolidBrush;
      if (solidBrush != null && solidBrush.Color == SystemColors.ActiveCaption)
      {
        // ....
      }
      

      以上内容适用于 WinForms,对于 WPF,您将使用 SolidColorBrush 而不是 SolidBrush。

      【讨论】:

        【解决方案3】:

        Brush 没有颜色。

        您使用Brush Color 进行填充/绘画等。

        一些笔刷确实有颜色(HatchBrush 有两种),所以您需要转换为笔刷类型然后比较颜色:

        ((HatchBrush)backBrush).BackgroundColor == SystemColors.ActiveCaption
        

        【讨论】:

        • 好吧,确切地说,有些画笔确实有颜色... (SolidColorBrush)
        【解决方案4】:

        您尝试过SystemBrushes 命名空间吗?

        if (backBrush == SystemBrushes.ActiveCaption)
        {...
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-11-10
          • 1970-01-01
          • 2012-06-20
          • 1970-01-01
          • 1970-01-01
          • 2013-09-23
          相关资源
          最近更新 更多