我遇到了如下问题。它不起作用,我无法解决我可能做错的事情。
<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>
答案 0 :(得分:1)
视觉状态只能应用于派生自Control
的对象。支持视觉状态的框架控件是像Button这样更重,更复杂的元素。 Polygon源自较低级别的FrameworkElement。
Polygon确实支持鼠标事件MouseEnter
和MouseLeave
,因此您可能只想将其子类化并添加适当的事件处理程序。或者您可以将Polygon包装在您自己的Control中,并自行触发任何视觉状态更改。