У меня есть меню опций, и каждая опция решает, какой контент должен отображаться.Решение, которое я решил, основанное на UX и UI, - показать группу переключателей и заставить их отображаться в виде кнопок.Цвет кнопки становится фиолетовым, когда пользователь выбирает параметр, а ранее выбранная кнопка становится серым, и, наконец, содержимое изменяется соответствующим образом.Я использую WPF XAML и использую шаблон стиля кнопки для переключателя.
Проблема, с которой я сталкиваюсь, состоит в том, что свойство IsChecked переключателя никогда не становится истинным, когда нажимается любая кнопка (которая изначально была переключателем).Пожалуйста, помогите мне решить эту проблему.Ниже приведен код:
<Style x:Key="ButtonRadioButtonStyle" TargetType="{x:Type RadioButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RadioButton}">
<Button Content="{TemplateBinding Content}"/>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
<Trigger Property="IsChecked" Value="false">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
<Trigger Property="IsChecked" Value="true">
<Setter Property="Background" Value="#FF2F2FEA" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
, а затем добавляется переключатель следующим образом:
<RadioButton Style="{DynamicResource ButtonRadioButtonStyle}" GroupName="modules" Height="40.64" Content="Materials" Margin="0,184.916,2,0" VerticalAlignment="Top" Checked="RadioButton_Checked" Click="RadioButton_Click"/>
Когда я делаю следующее в событии щелчка переключателя:
private void RadioButton_Click(object sender, RoutedEventArgs e)
{
RadioButton a = sender as RadioButton;
MessageBox.Show(a.IsChecked.ToString());
}
У меня всегда отображается ложь.Также вызывается переключатель событий Checked.