Ich habe eine Gruppe von Schaltflächen, die sich wie Umschalttasten verhalten sollen, aber auch als Optionsfelder, bei denen jeweils nur eine Taste ausgewählt / gedrückt werden kann. Es muss auch einen Zustand haben, in dem keine der Tasten ausgewählt / gedrückt wird.
Das Verhalten ähnelt einer Photoshop-Symbolleiste, in der jederzeit null oder eines der Werkzeuge ausgewählt wird!
Irgendeine Idee, wie dies in WPF implementiert werden kann?
Dies ist meiner Meinung nach der einfachste Weg.
Genießen! - Stichsäge
quelle
Grid
) anwenden müssen , verwenden Sie<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>
es funktioniert bei mir, viel Spaß!
quelle
Sie können jederzeit ein generisches Ereignis beim Klicken auf den ToggleButton verwenden, das alle ToggleButton.IsChecked in einer Gruppensteuerung (Grid, WrapPanel, ...) mithilfe des VisualTreeHelper auf false setzt. Überprüfen Sie dann den Absender erneut. Oder so ähnlich.
quelle
Sie können ein Raster mit Radiobuttons einfügen und eine Schaltflächenvorlage für Raduiobuttons erstellen. als nur programmgesteuert entfernen prüfen, ob die Tasten nicht umgeschaltet werden sollen
quelle
Sie können es auch versuchen
System.Windows.Controls.Primitives.ToggleButton
Schreiben Sie dann Code gegen die
IsChecked
Eigenschaft, um den Radiobutton-Effekt nachzuahmenquelle
ListBoxItem
s nicht verwendbar .Ich habe dies für RibbonToggleButtons gemacht, aber vielleicht ist es das gleiche für normale ToggleButtons.
Ich habe das IsChecked für jede Schaltfläche mit EnumToBooleanConverter von hier aus an einen Aufzählungswert "mode" gebunden. Wie binde ich RadioButtons an eine Aufzählung? (Geben Sie den Aufzählungswert für diese Schaltfläche mit dem ConverterParameter an. Sie sollten einen Aufzählungswert für jede Schaltfläche haben.)
Um zu verhindern, dass eine bereits aktivierte Schaltfläche deaktiviert wird, fügen Sie diese in Ihren Code für das Click-Ereignis für jede der RibbonToggleButtons ein:
quelle
Um Leuten wie Julian und mir zu helfen (vor zwei Minuten ...). Sie können daraus ableiten
RadioButton
.Dann können Sie es verwenden, wie Uday Kiran vorgeschlagen hat ...
Diese Methode erlaubt es, jeweils nur eine
ToggleButton
zu seinChecked
, und sie erlaubt auch das Aufheben der Überprüfung.quelle
Ich nahm ein paar Antworten und fügte zusätzlichen Code hinzu. Jetzt können Sie verschiedene Gruppen von Umschalttasten haben, die sich wie eine Umschalttaste verhalten:
Und die verschiedenen Gruppen von Optionsfeldern, die wie Umschalttasten aussehen:
quelle