XAML 在WPF中更改切换按钮背景

cgh8pdjw  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(153)

我正在更改MouseOver上的ToggleButton的背景,如下所示:

<Style x:Key="ToggleButtonStyle" TargetType="{x:Type ToggleButton}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ToggleButton}">
                    <Border  x:Name="border" 
                             Background="{TemplateBinding Background}"                                                                 
                        <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="true">
                            <Setter 
                                TargetName="border"
                                Property="Background"
                                Value="{StaticResource ToggleButtonMouseHover}"/>                                
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

我不明白为什么我们必须使用Border控件。您有解释吗?

  • 谢谢-谢谢
ubby3x7f

ubby3x7f1#

这不是强制性的,您可以使用任何Panel作为ToggleButton的新模板

<Style x:Key="ToggleButtonStyle" TargetType="{x:Type ToggleButton}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ToggleButton">
                <Canvas x:Name="border" Background="Red" />
                <ControlTemplate.Triggers>
                    <Trigger Property="IsMouseOver" Value="true">
                        <Setter TargetName="border" Property="Background" Value="Blue" />
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
jljoyd4f

jljoyd4f2#

感谢大家,重点是背景需要一个容器。

相关问题