У меня есть группа кнопок, которые должны действовать как кнопки переключения, а также как переключатели, где в текущий момент может быть выбрана / нажата только одна кнопка. Также необходимо иметь состояние, в котором ни одна из кнопок не выбрана / не нажата.
Поведение будет похоже на панель инструментов Photoshop, где в любой момент можно выбрать ноль или один из инструментов!
Есть идеи, как это можно реализовать в WPF?
На мой взгляд, это самый простой способ.
Наслаждайтесь! - Пила
источник
Grid
), используйте<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>
у меня работает, наслаждайтесь!
источник
вы всегда можете использовать универсальное событие для Click элемента ToggleButton, которое устанавливает для всех ToggleButton.IsChecked в групповом элементе управления (Grid, WrapPanel, ...) значение false с помощью VisualTreeHelper; затем еще раз проверьте отправителя. Или что-то в этом роде.
источник
вы можете поместить в нее сетку с радиокнопками и создать кнопку как шаблон для raduiobuttons. чем просто программно удалить, проверьте, не хотите ли вы переключать кнопки
источник
Вы также можете попробовать
System.Windows.Controls.Primitives.ToggleButton
Затем напишите код для
IsChecked
свойства, чтобы имитировать эффект радиокнопки.источник
ListBoxItem
s.Я сделал это для RibbonToggleButtons, но, возможно, то же самое и для обычных ToggleButtons.
Я привязал IsChecked для каждой кнопки к значению перечисления "mode", используя EnumToBooleanConverter отсюда. Как привязать RadioButtons к перечислению? (Укажите значение перечисления для этой кнопки с помощью ConverterParameter. У вас должно быть одно значение перечисления для каждой кнопки)
Затем, чтобы предотвратить снятие отметки с кнопки, которая уже отмечена, поместите это в свой код для события Click для каждого из RibbonToggleButtons:
источник
Чтобы помочь людям вроде меня и Джулиана (две минуты назад ...). Вы можете извлечь из этого
RadioButton
вот что.Затем вы можете использовать его, как предложил Удай Киран ...
Этот метод позволяет только один ,
ToggleButton
чтобы бытьChecked
в то время, и это также позволяет Непроверку.источник
Я взял несколько ответов и добавил дополнительный код. Теперь у вас могут быть разные группы кнопок-переключателей, которые действуют как одна кнопка-переключатель:
И различные группы переключателей, которые выглядят как кнопки переключения:
источник