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

Échec. Dit que vous ne pouvez pas comparer un pinceau et une couleur.comparer un pinceau et couleur

Comment trouver la couleur de la brosse?

Répondre

5

Si backBrush est un SolidColorBrush (basé sur ce que vous essayez de le faire est sans doute), vous pouvez utiliser:

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

Un Brush n'a pas de couleur.

Vous utilisez un Brushavec unColor pour le remplissage/peinture etc.

Certains brosses faire ont une couleur (HatchBrush a deux), vous aurez donc besoin de jeter le type de brosse et comparer les couleurs puis:

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

bien, pour être exact, des pinceaux * faire * ont une couleur ... ('SolidColorBrush') –

+0

@Thomas Levesque - Merci pour la correction! – Oded

2

Si le pinceau est un SolidBrush, vous pouvez comparer le membre Color du pinceau. Quelque chose comme ça.

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

Ce qui précède est pour WinForms, WPF pour vous utiliseriez SolidColorBrush plutôt que SolidBrush.

1

Avez-vous essayé l'espace de noms SystemBrushes?

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