Style WPF RadioButton / ToggleButton
Je voudrais imiter un style pour un groupe de contrôles togglebutton comme dans l'image ci-dessous. Un seul des boutons peuvent être "Vérifiée à tout moment.
Ma question est liée au style:
- J'aimerais avoir des coins arrondis sur le bouton de gauche et le bouton le plus à droite comme dans l'image, mais si il y a un bouton entre les deux (comme dans l'image), qui ne devrait pas avoir des coins arrondis. Parfois, il peut seulement être deux boutons à bascule.
- J'ai besoin de style pour les différents états: "Normal/Unchecked", "Mouseover", "Pressé" et "Vérifié" au minimum.
Le contrôle en cours je suis à l'aide de ce qui est fait de cette manière:
<StackPanel Orientation="Horizontal" >
<RadioButton Style="{StaticResource {x:Type ToggleButton}}" Content="All" Padding="12,8,12,8" GroupName="View" />
<RadioButton Style="{StaticResource {x:Type ToggleButton}}" Content="Geolocated" Padding="12,8,12,8" GroupName="View" />
<RadioButton Style="{StaticResource {x:Type ToggleButton}}" Content="Non Geolocated" Padding="12,8,12,8" GroupName="View" />
</StackPanel>
Dans le StackPanel Ressources, je suis en train de définir un Style pour ToggleButton, mais je suis assez perdu comment faire pour atteindre le résultat comme dans l'image ci-dessus.
source d'informationauteur Nuts
Vous devez vous connecter pour publier un commentaire.
Cela peut ne pas être la méthode la plus simple/la meilleure approche, mais j'ai pris un coup de couteau à frapper quelques
ControlTemplates
à l'aide de Kaxaml, de produire quelque chose qui ressemble à ceci:Vous pouvez stocker ces modèles dans un
ResourceDictionary
et de les appliquer lorsque requis, ou les utiliser si vous avez été la construction de votre bouton de liste à la volée.J'ai effectivement créé trois légèrement différents styles, pour les boutons gauche et droite, et l'autre pour le milieu (vous pouvez être en mesure de simplifier cette extension/styles hérités). Certains répété code omis.
Vous devrez ajouter de nouvelles
Triggers
etc. pour leIsPressed
de l'état, et tous les autres requis (e.gIsEnabled
).