2010-05-21 8 views
4

J'essaie de créer un ensemble de boutons qui ont un état off ou on, beaucoup une case à cocher sans la vérification. Idéalement, je veux que la couleur change pour représenter les deux états différents (rouge), vert (allumé). J'ai essayé de définir un modèle de contrôle mais cela ne change que la couleur d'une sélection, puis revient à sa couleur d'origine une fois que la souris quitte le voisinage du bouton.WPF Bouton activé ou désactivé état de couleur

<ControlTemplate.Triggers> 
    <Trigger Property="IsPressed" Value="True"> 
     <Setter Property="Background" TargetName="Background" Value="Green"/> 
    </Trigger> 
</ControlTemplate.Triggers> 

Répondre

6

D'abord, ce que vous décrivez est un ToggleButton.
Deuxièmement, utiliser un style et déclenche pour "isChecked"

<Style x:Key="MyToggleStyle" TargetType="{x:Type ToggleButton}"> 
<Style.Triggers> 
    <Trigger Property="IsChecked" Value="True"> 
    <Setter Property="Background" Value="Green"/> 
    </Trigger> 
    <Trigger Property="IsChecked" Value="False"> 
    <Setter Property="Background" Value="Red"/> 
    </Trigger> 
</Style.Triggers> 
</Style> 

here is a solution to a similar problem

+0

En fait, je pense que ce qu'il veut n'est pas le survol de la souris, mais l'état est pressé. Sinon, je suis avec vous sur celui-là :) –

+0

ooops, votre droite. –

+0

Togglebutton est beaucoup mieux, même si la couleur ne fonctionne toujours pas. – wonea

0

Utilisez quelque chose de similaire à ci-dessous:

<Button> 
    ... 
    <Button.Style> 
     <Style> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding SomeField, Converter={StaticResource yourConverter}}" Value="yourValue"> 
        <!-- set what you want here --> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Button.Style> 
</Button> 
0

En fait, pourrait utiliser une case à cocher pour moi that.Allow explique:

WPF vous permet de définir le modèle de contrôle, qui est essentiellement le contrôle entier lui-même. Vous pouvez créer une case à cocher qui ressemble exactement à un bouton. Cependant, comme quelqu'un l'a dit, ToggleButton est probablement ce que vous voulez utiliser.

Questions connexes