2010-05-24 135 views
3
if (backBrush == SystemColors.ActiveCaption) 

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

如何找到笔刷的颜色?

回答

5

如果backBrush是的SolidColorBrush(根据你想可能做什么),你可以使用:

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

A Brush没有颜色。

您使用Brush用于填充Color /绘画等

一些有颜色(HatchBrush有两个),所以你需要转换到画笔类型和比较颜色则:

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

好,确切的说,一些刷*做*有一个颜色......('SolidColorBrush') – 2010-05-24 18:04:23

+0

@Thomas Levesque的 - 感谢您的指正! – Oded 2010-05-24 18:08:32

2

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

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

以上是的WinForms,WPF的你会用SolidColorBrush而非SolidBrush。

1

您是否尝试过SystemBrushes命名空间?

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