无法使用事件触发器更改背景。触发IsMouseOver属性未触发

时间:2015-09-04 21:04:44

标签: c# wpf xaml triggers

为什么以下代码无效:

<Border Focusable="True" Background="Blue" Height="30" Width="30" >
    <Border.Style>
        <Style TargetType="{x:Type Border}">
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Background" Value="Red"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Border.Style>
</Border>

当我将鼠标悬停在该边框上时,它不会变为红色。为什么呢?

1 个答案:

答案 0 :(得分:1)

在样式中设置第一个边框背景,而不是在bordre属性中设置它。就像这样:

<Border Focusable="True"  Height="30" Width="30" >
    <Border.Style>
        <Style TargetType="{x:Type Border}">
           <setter Property="Background" Value="Blue"/>
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Background" Value="Red"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Border.Style>
</Border>

它应该有用