为什么MouseOver上的背景不改变?

时间:2018-08-03 08:09:45

标签: c# .net wpf xaml

因此,我决定尝试为菜单按钮首次创建自己的模板,并且我想更改鼠标悬停时的基本内容,例如背景色和背景色。 除了MouseOver部件之外,它的工作原理还不错,它不会将其更改为黑色,而当鼠标移到它上面时,它仍然是蓝色的系统颜色,为什么呢?我需要设置覆盖属性吗?

我的按钮

    <Button Height="40" Style="{DynamicResource MenuButtonStyle}">
        <StackPanel>
            <Label Foreground="White" FontWeight="SemiBold">Products</Label>
        </StackPanel>
    </Button>

和样式

<Style x:Key="MenuButtonStyle" TargetType="{x:Type Button}">
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Background" Value="Black"/>
                </Trigger>
            </Style.Triggers>
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="BorderThickness" Value="0"/>
            <Setter Property="BorderBrush" Value="Black"/>
        </Style>

1 个答案:

答案 0 :(得分:3)

要更改您的document.getElementById('Example').innerHTML = Math.floor(Math.random() * 13) + 1; var a='answers-header'; document.getElementById(a).innerHTML=Math.floor(Math.random() * 13) + 2; Button,您需要修改其控制模板,如下所示:

Background

您需要执行此操作,因为“原始” <Style x:Key="MenuButtonStyle" TargetType="{x:Type Button}"> <Setter Property="Background" Value="Transparent"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Border Background="{TemplateBinding Background}" BorderBrush="Black" BorderThickness="0"> <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> </Border> </ControlTemplate> </Setter.Value> </Setter> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="Black"/> </Trigger> </Style.Triggers> </Style> 样式的Button中包含触发器,因此您需要覆盖它们