WPF边框IsMouseOver触发器无法正常工作

10

我已经在app.xaml中定义了这种样式:

    <Style x:Key="RedCloseButton" TargetType="Border">
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Border.Background" Value="Yellow" />
                </Trigger>
                <Trigger Property="IsMouseOver" Value="False">
                    <Setter Property="Border.Background" Value="Black" />
                </Trigger>
            </Style.Triggers>
    </Style>

我正在尝试在另一个 XAML 文件中使用它,代码如下:

    <Border Style="{StaticResource RedCloseButton}" Name="ClearValue" BorderThickness="2" BorderBrush="black" CornerRadius="0,4,4,0" Margin="110,90,0,80" Background="#FF801F1F">                
            <Rectangle Margin="10,11,6,10" Fill="White" RadiusX="2" RadiusY="2" IsHitTestVisible="False"></Rectangle>
    </Border>

但当我将鼠标悬停在边框上时,没有任何反应...这里可能出了什么问题?
1个回答

18
因为您在边框中设置了Background,这将覆盖Style。您需要从xamlBorder中删除Background="#FF801F1F",以便Style可以设置Background
<Border Style="{StaticResource RedCloseButton}" Name="ClearValue" BorderThickness="2" BorderBrush="black" CornerRadius="0,4,4,0" Margin="110,90,0,80">                
        <Rectangle Margin="10,11,6,10" Fill="White" RadiusX="2" RadiusY="2" IsHitTestVisible="False"></Rectangle>
</Border>       

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接