2010-05-24 137 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) 
{...