按钮样式问题

时间:2018-09-07 07:21:02

标签: wpf templates button background styles

我正在尝试更改此按钮的样式,但是有问题。在将此代码添加到解决方案中之前,将鼠标放在按钮上时,背景不是更改为我的样式,而是更改为默认颜色。我寻找信息,找到了此设置模板。有了这个,我必须删除该默认背景,但是现在,当我将鼠标放在上面时,背景就消失了。我猜它正在获取其父级的背景(窗口),但是我不知道如何使用其自己的背景,因为我在样式代码中编写了代码。似乎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>

1 个答案:

答案 0 :(得分:0)

请将样式触发器移至ControlTemplate:

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