Silverlight IsMouseOver无法正常工作

时间:2014-12-27 01:34:46

标签: xaml silverlight

我遇到了如下问题。它不起作用,我无法解决我可能做错的事情。

<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 个答案:

答案 0 :(得分:1)

视觉状态只能应用于派生自Control的对象。支持视觉状态的框架控件是像Button这样更重,更复杂的元素。 Polygon源自较低级别的FrameworkElement。

Polygon确实支持鼠标事件MouseEnterMouseLeave,因此您可能只想将其子类化并添加适当的事件处理程序。或者您可以将Polygon包装在您自己的Control中,并自行触发任何视觉状态更改。