4
if (backBrush == SystemColors.ActiveCaption)

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

如何找到画笔的颜色?

4

4 回答 4

5

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

if(((SolidColorBrush)backBrush).Color == SystemColors.ActiveCaption)
于 2010-05-24T18:03:41.257 回答
2

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

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

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

于 2010-05-24T18:06:13.703 回答
1

ABrush没有颜色。

您将 aBrush a一起Color用于填充/绘画等。

有些画笔确实有颜色(HatchBrush有两种),因此您需要转换为画笔类型并比较颜色:

((HatchBrush)backBrush).BackgroundColor == SystemColors.ActiveCaption
于 2010-05-24T18:02:12.523 回答
1

你试过SystemBrushes命名空间吗?

if (backBrush == SystemBrushes.ActiveCaption)
{...
于 2010-05-24T18:10:21.860 回答