首页 > 解决方案 > 按钮样式问题

问题描述

我正在尝试更改此按钮的样式,但我遇到了问题。在将此代码添加到我的解决方案之前,当我将鼠标放在按钮上时,背景不会更改为我的样式,而是更改为默认颜色。我查找信息并找到了这个 Setter Template。有了这个,我必须删除那个默认背景,但是现在,当我把鼠标放在上面时,背景就会消失。我猜它正在获取其父级的背景(窗口),但我不知道如何使用它自己的背景,正如我在样式代码中所写的那样。StackOverFlow 似乎不允许我粘贴整个代码,但我认为您可以理解它。

<Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <ContentPresenter
                  Margin="{TemplateBinding Control.Padding}"
                  HorizontalAlignment="{TemplateBinding Control.HorizontalContentAlignment}"
                  VerticalAlignment="{TemplateBinding Control.VerticalContentAlignment}"
                  SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}"
                  ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}"
                  RecognizesAccessKey="True"
                  Content="{TemplateBinding ContentControl.Content}" />

                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="Background" Value="White"/>
                                <Setter Property="Foreground" Value="DarkRed"/>
                                <Setter Property="Cursor" Value="Hand"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
            <Setter Property="VerticalContentAlignment" Value="Center"/>
        </Style>

标签: wpftemplatesbuttonbackgroundstyles

解决方案


请将您的样式触发器移至 ControlTemplate:

<ControlTemplate.Triggers>
    your triggers here
</ControlTemplate.Triggers>

推荐阅读