Mam grupę przycisków, które powinny działać jak przyciski przełączania, ale także jako przyciski radiowe, w których można wybrać / nacisnąć tylko jeden przycisk w danym momencie. Musi również mieć stan, w którym żaden z przycisków nie jest zaznaczony / wciśnięty.
Zachowanie będzie podobne do paska narzędzi programu Photoshop, w którym w dowolnym momencie wybierane jest zero lub jedno z narzędzi!
Masz jakiś pomysł, jak można to zaimplementować w WPF?
Moim zdaniem to najłatwiejszy sposób.
Cieszyć się! - Pricksaw
źródło
Grid
), użyj<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>
na mnie działa, ciesz się!
źródło
zawsze możesz użyć zdarzenia ogólnego w Click of the ToggleButton, które ustawia wszystkie ToggleButton.IsChecked w groupcontrol (Grid, WrapPanel, ...) na false za pomocą VisualTreeHelper; następnie ponownie sprawdź nadawcę. Albo coś w tym rodzaju.
źródło
możesz umieścić siatkę z przyciskami radiowymi w niej i utworzyć przycisk podobny do szablonu dla raduiobuttons. niż programowe usuwanie, sprawdź, czy nie chcesz przełączać przycisków
źródło
Możesz też spróbować
System.Windows.Controls.Primitives.ToggleButton
Następnie napisz kod dotyczący
IsChecked
właściwości, aby naśladować efekt radiobuttonźródło
ListBoxItem
s.Zrobiłem to dla RibbonToggleButtons, ale może to samo dotyczy zwykłych ToggleButtons.
Powiązałem IsChecked dla każdego przycisku z wartością wyliczenia „mode” przy użyciu EnumToBooleanConverter stąd Jak powiązać RadioButtons z wyliczeniem? (Określ wartość wyliczenia dla tego przycisku przy użyciu parametru ConverterParameter. Dla każdego przycisku należy podać jedną wartość wyliczenia)
Następnie, aby zapobiec odznaczeniu przycisku, który jest już zaznaczony, umieść to w kodzie za zdarzeniem Click dla każdego z RibbonToggleButtons:
źródło
Aby pomóc ludziom takim jak Julian i ja (dwie minuty temu ...). Możesz z tego
RadioButton
wywnioskować.Następnie możesz go używać tak, jak sugerował Uday Kiran ...
Metoda ta pozwala tylko jeden
ToggleButton
będzieChecked
w danym momencie, a także pozwala odznaczenie.źródło
Wziąłem kilka odpowiedzi i dodałem dodatkowy kod. Teraz możesz mieć różne grupy przycisków przełączania, które działają jak jeden przycisk przełączania:
Oraz różne grupy przycisków opcji, które wyglądają jak przyciski przełączania:
źródło