鼠标悬停在其上时更改控件背景

时间:2019-07-15 15:22:43

标签: c# wpf triggers mousehover

我发现了不同的代码段,它们应该在鼠标悬停时改变控件的背景。我无法使其中任何一个正常工作。这是我现在正在使用的代码。我不知道自己缺少什么,我正在指定所有内容。

<Window.Resources>
    <Style x:Key="HoverButton" TargetType="{x:Type Button}">
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="Background" Value="#FFA9DE4E"/>
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Resources>

我还指定了要应用于特定控件的样式,在这种情况下为按钮。

<!-- Start button -->
    <Button x:Name="btnStart" Style="{StaticResource HoverButton}" Content="Start" Margin="503,411,10,10" FontWeight="Bold" BorderBrush="#FFA9DE4E" Click="BtnNext_Click" Foreground="#FFA9DE4E" Background="#FF222831">
        <Button.Effect>
            <DropShadowEffect Color="#FFA9DE4E" ShadowDepth="1" BlurRadius="20" Direction="320"/>
        </Button.Effect>
    </Button>

当我将鼠标悬停在按钮上时,没有任何改变。

1 个答案:

答案 0 :(得分:0)

尝试像这样修改按钮模板:

<Button Content="Button" HorizontalAlignment="Center" Click="Button_Click" VerticalAlignment="Center" Width="75">
                    <Button.Template>
                        <ControlTemplate TargetType="{x:Type Button}">
                            <Border x:Name="bdr_main" BorderThickness="1" BorderBrush="Black" Background="LightGray">
                                <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Center" />
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsMouseOver" Value="True">
                                    <Setter TargetName="bdr_main" Property="Background" Value="#FFA9DE4E"/>
                                </Trigger>
    //You can also change the color at the click like this:
                                <Trigger Property="IsPressed" Value="True">
                                    <Setter TargetName="bdr_main" Property="Background" Value="Red"/>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                </Button.Template>
            </Button>

通过修改模板,您可以根据需要对按钮进行样式化。

希望能为您提供帮助。