C# 根据属性更改单选按钮的样式

C# 根据属性更改单选按钮的样式,c#,wpf,xaml,C#,Wpf,Xaml,我有一个单选按钮,它是作为ItemsControl数据模板的一部分动态设置的 <RadioButton GroupName="Ratings"> <RadioButton.Content> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding Score}" /> <TextBlock Text=" - " /> &

我有一个单选按钮,它是作为ItemsControl数据模板的一部分动态设置的

<RadioButton GroupName="Ratings">
  <RadioButton.Content>
    <StackPanel Orientation="Horizontal">
      <TextBlock Text="{Binding Score}" />
      <TextBlock Text=" - " />
      <TextBlock Text="{Binding Description}" />
    </StackPanel>
  </RadioButton.Content>
</RadioButton>

我可以用codebehind实现这一点,但如果可能的话,我会尽量避免这种情况,并将逻辑放在XAML中。

将样式应用于radio的父级,然后使用触发器通过IsChecked属性更改radio的样式


将样式应用于radio的父级,然后使用触发器通过IsChecked属性更改radio的样式



将样式应用于收音机的
父项
,然后使用触发器通过IsChecked属性更改收音机的样式。另一种方法是将样式应用于无线电本身,然后使用触发器更改ControlTemplate by IsChecked属性。样式不是由我定义的,我无法更改它们。你的第一个选项听起来似乎可行,你能提供一个答案来进一步解释你的意思吗?你不能仅仅改变检查/未检查事件的代码隐藏中的样式吗?是的,我在我的问题中提到,它可以在代码隐藏中完成,想要在视图上执行此操作,而@codeDom已举例说明将样式应用于收音机的
父项
,然后使用触发器通过IsChecked属性更改收音机的样式。另一种方法是将样式应用于无线电本身,然后使用触发器更改ControlTemplate by IsChecked属性。样式不是由我定义的,我无法更改它们。您的第一个选项听起来似乎可行,您能提供一个答案进一步解释您的意思吗?您不能在选中/未选中的事件上更改代码隐藏中的样式吗?是的,我在问题中提到,它可以在代码隐藏中完成,希望在视图上执行此操作,而@codeDom已经说明了这一点
if IsChecked = true then 
  style = MyCheckedStyle1
else if IsChecked = false then
  style = MyUncheckedStyle1