if (backBrush == SystemColors.ActiveCaption)
这失败了。说你不能比较画笔和颜色。
如何找到画笔的颜色?
如果 backBrush 是 SolidColorBrush (根据您尝试做的可能是),您可以使用:
if(((SolidColorBrush)backBrush).Color == SystemColors.ActiveCaption)
如果画笔是 SolidBrush,您可以比较画笔的 Color 成员。像这样的东西。
SolidBrush solidBrush = brush as SolidBrush;
if (solidBrush != null && solidBrush.Color == SystemColors.ActiveCaption)
{
// ....
}
以上是针对 WinForms,对于 WPF,您将使用SolidColorBrush而不是 SolidBrush。
ABrush
没有颜色。
您将 aBrush
与a一起Color
用于填充/绘画等。
有些画笔确实有颜色(HatchBrush
有两种),因此您需要转换为画笔类型并比较颜色:
((HatchBrush)backBrush).BackgroundColor == SystemColors.ActiveCaption
你试过SystemBrushes
命名空间吗?
if (backBrush == SystemBrushes.ActiveCaption)
{...