有没有办法在单击切换按钮时取消设置ToggleButton的IsChecked属性?我希望通过绑定到自定义属性来处理IsChecked属性。
如果你想让控件只通过绑定处理它的IsChecked
状态并阻止用户输入,你可以将IsEnabled="False",但这会使得它在
Disabled
状态下显得有些不透明,除非你相应地修改控件模板。
我认为你更需要的是一种方法,仅省略用户输入但仍处理你的IsChecked
,因此建议像这样设置:
<ToggleButton IsHitTestVisible="False" IsTabStop="False" IsChecked="{Binding blah}"/>
希望这能帮到您,祝一切顺利。
IsChecked
属性设置为true
,相关视图正在显示,但是当用户按下它时(而视图保持不变),ToggleButton的设计会发生变化。因此,最终我看到了视图,但ToggleButton未被选中,而后面的IsChecked
属性被设置为true
。完全疯狂。class CustomToggleButton : ToggleButton
{
protected override void OnToggle()
{
if (IsChecked != true)
{
base.OnToggle();
}
}
}
<Style TargetType="ToggleButton" x:Key="MyToggle">
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<!-- Prevents unchecking -->
<Setter Property="IsHitTestVisible" Value="False"/>
<Setter Property="IsTabStop" Value="False"/>
</Trigger>
</Style.Triggers>
</Style>