if (backBrush == SystemColors.ActiveCaption)
这失败了。说你无法比较画笔和颜色。
如何找到画笔的颜色?
答案 0 :(得分:5)
如果backBrush是一个SolidColorBrush(基于你想要做的事情),你可以使用:
if(((SolidColorBrush)backBrush).Color == SystemColors.ActiveCaption)
答案 1 :(得分:2)
如果画笔是SolidBrush,您可以比较画笔的Color成员。这样的事情。
SolidBrush solidBrush = brush as SolidBrush;
if (solidBrush != null && solidBrush.Color == SystemColors.ActiveCaption)
{
// ....
}
以上是针对WinForms的,对于WPF,您可以使用SolidColorBrush而不是SolidBrush。
答案 2 :(得分:1)
Brush
没有颜色。
您使用Brush
与 Color
进行填充/绘画等。
一些 有一种颜色(HatchBrush
有两种颜色),所以你需要强制转换为画笔类型并比较颜色: / p>
((HatchBrush)backBrush).BackgroundColor == SystemColors.ActiveCaption
答案 3 :(得分:1)
您是否尝试过SystemBrushes
命名空间?
if (backBrush == SystemBrushes.ActiveCaption)
{...