J'ai un groupe de boutons qui devraient agir comme des boutons à bascule, mais aussi comme des boutons radio où un seul bouton peut être sélectionné / enfoncé à la fois. Il doit également avoir un état dans lequel aucun des boutons n'est sélectionné / enfoncé.
Le comportement sera un peu comme la barre d'outils Photoshop, où zéro ou l'un des outils est sélectionné à tout moment!
Une idée de la façon dont cela peut être implémenté dans WPF?
C'est le moyen le plus simple à mon avis.
Prendre plaisir! - Pricksaw
la source
Grid
), utilisez<Grid.Resources> <Style TargetType="RadioButton" BasedOn="{StaticResource {x:Type ToggleButton}}" /> </Grid.Resources>
.<Style BasedOn="{StaticResource {x:Type ToggleButton}}" x:Key="Blubb" TargetType="RadioButton"><Setter Property="Background" Value="Yellow" /></Style>
ça marche pour moi, profitez-en!
la source
vous pouvez toujours utiliser un événement générique sur le Click du ToggleButton qui définit tous les ToggleButton.IsChecked dans un groupcontrol (Grid, WrapPanel, ...) sur false à l'aide de VisualTreeHelper; puis revérifiez l'expéditeur. Ou quelque chose comme ça.
la source
vous pouvez mettre une grille avec des boutons radio et créer un bouton comme un modèle pour les boutons radio. que de simplement supprimer par programme, vérifiez si vous ne voulez pas que les boutons soient basculés
la source
Vous pouvez également essayer
System.Windows.Controls.Primitives.ToggleButton
Ensuite, écrivez du code contre la
IsChecked
propriété pour imiter l'effet du bouton radiola source
ListBoxItem
s.J'ai fait cela pour RibbonToggleButtons, mais c'est peut-être la même chose pour les ToggleButtons classiques.
J'ai lié le IsChecked pour chaque bouton à une valeur d'énumération "mode" en utilisant EnumToBooleanConverter à partir d'ici Comment lier RadioButtons à une énumération? (Spécifiez la valeur d'énumération de ce bouton à l'aide de ConverterParameter. Vous devez avoir une valeur d'énumération pour chaque bouton)
Ensuite, pour éviter de décocher un bouton déjà coché, placez-le dans votre code derrière pour l'événement Click pour chacun des RibbonToggleButtons:
la source
Pour aider des gens comme Julian et moi (il y a deux minutes ...). Vous pouvez en dériver
RadioButton
.Ensuite, vous pouvez l'utiliser comme Uday Kiran l'a suggéré ...
Cette méthode ne permet qu'une seule
ToggleButton
d'êtreChecked
à la fois, et il permet également décochant.la source
J'ai pris quelques éléments des réponses et j'ai ajouté du code supplémentaire. Vous pouvez maintenant avoir différents groupes de boutons bascule qui agissent comme un bouton bascule:
Et les différents groupes de boutons radio qui ressemblent à des boutons à bascule:
la source