我一直在使用带有 ToggleButton 作为控件模板的自定义 RadioButton 控件。这是 xaml 的样子:
<RadioButton.Template>
<ControlTemplate>
<ToggleButton x:Name="tb" IsChecked="{Binding IsChecked, Mode=TwoWay,
RelativeSource={RelativeSource TemplatedParent}}"
Content="{TemplateBinding RadioButton.Content}"
PreviewMouseDown="tb_PreviewMouseDown">
</ToggleButton>
</ControlTemplate>
</RadioButton.Template>
它一直运行良好,除非我尝试以编程方式设置按钮的 IsChecked 属性或与它进行绑定。然后应该检查的按钮在视觉上没有响应 - 它似乎没有被按下,并且 Aero 鼠标悬停效果也没有出现。Clicked 事件处理程序仍然有效,当我检查 RadioButton 和 ControlTemplate 的切换按钮的值时,它们的 IsChecked 属性都是 true。艾米,我装订有问题吗?有任何想法吗?
这是我如何在应用程序中使用它的示例:
<local:RadioToggleButton Content="1Hr" GroupName="Interval" x:Name="oneHrBtn"
IsChecked="{BindingPath=oneHrBtnIsChecked, Mode=TwoWay}" Margin="2 5 3 5"
IsEnabled="{Binding Path=oneHrBtnIsEnabled, Mode=TwoWay}"/>