2010-02-16 24 views
7

Après avoir cliqué sur les boutons WPF dans notre application, ils brillent en bleu, retour à la couleur d'origine, retour au bleu, etc. Cela semble être le comportement par défaut sur Windows Vista/7. Cela n'arrive pas sur XP. Aucun conseil?Glowing WPF Buttons

Répondre

8

Vous devez remplacer le modèle de bouton par défaut - http://mark-dot-net.blogspot.com/2007/07/creating-custom-wpf-button-template-in.html devrait vous aider à démarrer.

Plus précisément Section 3:

<ControlTemplate.Triggers> 
    <Trigger Property="IsMouseOver" Value="True"> 
     <Setter TargetName="border" Property="BorderBrush" Value="#FF4788c8" /> 
     <Setter Property="Foreground" Value="#FF4788c8" /> 
    </Trigger> 
    <Trigger Property="IsPressed" Value="True">     
     <Setter Property="Background" > 
      <Setter.Value> 
       <LinearGradientBrush StartPoint="0,0" EndPoint="0,1" > 
        <GradientStop Color="#FFFFD190" Offset="0.35"/> 
        <GradientStop Color="Orange" Offset="0.95"/> 
        <GradientStop Color="#FFFFD190" Offset="1"/> 
       </LinearGradientBrush> 
      </Setter.Value> 
     </Setter> 
     <Setter TargetName="content" Property="RenderTransform" > 
      <Setter.Value> 
       <TranslateTransform Y="1.0" /> 
      </Setter.Value> 
     </Setter> 
    </Trigger> 
    <Trigger Property="IsDefaulted" Value="True"> 
     <Setter TargetName="border" Property="BorderBrush" Value="#FF282828" /> 
    </Trigger> 
    <Trigger Property="IsFocused" Value="True"> 
     <Setter TargetName="border" Property="BorderBrush" Value="#FF282828" /> 
    </Trigger> 
    <Trigger Property="IsEnabled" Value="False"> 
     <Setter TargetName="border" Property="Opacity" Value="0.7" /> 
     <Setter Property="Foreground" Value="Gray" /> 
    </Trigger> 
</ControlTemplate.Triggers> 
+0

Merci beaucoup! C'est exactement ce dont j'avais besoin. – Jason

+0

Heureux que ça a marché pour vous. – Nate

+0

Vos déclencheurs seraient mieux adaptés dans un style qui est considérablement plus facile que d'utiliser un ControlTemplate – markmnl

1

Vous devez remplacer le ControlTemplate. Sinon, il utilise des déclencheurs pour définir les couleurs sur des événements comme passer la souris dessus. Si vous définissez simplement Background, vous définissez uniquement l'arrière-plan par défaut lorsqu'il n'y a pas de Trigger s en cours.