2013-03-05 65 views
6

我在App.xaml中定义的这种风格:WPF边境IsMouseOver触发器不工作

<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 -file像这样使用它:

<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> 

但是,当我将鼠标移到边界上时什么都没有发生......这里可能有什么错误?

回答

13

它,因为你已经在Border设置Background,这将覆盖Style

你将不得不从Borderxaml删除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>  
+0

是啊,做了魔术!非常感谢! – Jaska 2013-03-05 20:30:30