2014-12-27 3 views
1

Я столкнулся с следующей проблемой, как показано ниже. Он не работает, и я не могу понять, что я могу делать неправильно.Silverlight IsMouseOver не работает

<Polygon Name="Polygon1" Points="0,0 40,0 20,20" Opacity="0" HorizontalAlignment="Center" 
     VerticalAlignment="Bottom" Margin="0,0,0,-10" Fill="#FF547E80"> 
    <VisualStateManager.VisualStateGroups> 
     <VisualStateGroup x:Name="CommonStateGroup"> 
      <VisualState x:Name="MouseOverState"> 
       <Storyboard> 
        <DoubleAnimation Storyboard.TargetName="Polygon1" 
            Storyboard.TargetProperty="Opacity" 
            To="1" 
            Duration="00:00:00" /> 
       </Storyboard> 
      </VisualState> 
     </VisualStateGroup> 
     <VisualStateGroup x:Name="FocusStates"> 
      <VisualState x:Name="Focused" /> 
      <VisualState x:Name="Unfocused" /> 
     </VisualStateGroup> 
    </VisualStateManager.VisualStateGroups> 
</Polygon> 

ответ

1

Визуальные состояния могут применяться только к объектам, которые производятся от Control. Элементы управления каркасом, которые поддерживают визуальные состояния, представляют собой более тяжелые, более сложные элементы, такие как Button. Полигон получен из элемента Framework более низкого уровня.

Polygon поддерживает события мыши MouseEnter и MouseLeave, поэтому вы можете просто подклассифицировать их и добавить соответствующие обработчики событий. Или вы можете обернуть Polygon в свой собственный элемент управления и активировать любое визуальное состояние самостоятельно.

Смежные вопросы