WPF ToggleButton看起来像普通按钮

时间:2016-02-26 15:48:02

标签: c# wpf button

有没有一种简单的方法可以让ToggleButton显示为普通按钮?我试图单击该按钮,它将触发IsEnabled为false给另一个控件。使用ToggleButton,我可以在IsChecked属性上执行触发器。然而,当切换时,ToggleButton看起来完全不同。感谢。

2 个答案:

答案 0 :(得分:2)

在WPF设计器中,右键单击相关的ToggleButton并选择Edit Template -> Edit a Copy。选择适当的设置,然后单击“确定”。

ToggleButton的默认模板将添加到您的XAML中。在那里,删除此代码:

<Trigger Property="IsChecked" Value="true">
    <Setter Property="RenderPressed" TargetName="Chrome" Value="true"/>
</Trigger>

您可以将此样式/模板重复用于多个ToggleButtons。

修改

您还可以选择其他选项。使用标准Button并连接Click事件处理程序或执行代码的Command绑定来更新IsChecked属性,例如

<CheckBox IsChecked="{Binding IsChecked}" IsEnabled="False" Content="State" />
<Button Content="Toggle" Command="{Binding ToggleStateCommand}" />

然后,当然,你的命令只需要执行

IsChecked = !IsChecked

这一切都假设你有一个ICommand实现,你很满意,而且你有点做MVVM,但也许这个问题有点超出了这个Q / A.

答案 1 :(得分:1)

最简单的方法是让1透明,并显示其他控件作为其内容。为内容设置ToggleButton

尝试保证金价值。

IsHitTestVisible = False

上面可以自定义使用ToggleButton的内容,如:

<ToggleButton Background="Transparent" BorderBrush="Transparent" BorderThickness="0" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
    <Button Content="Toggle Button" Margin="-5" IsHitTestVisible="True" />
</ToggleButton>