为什么我的视觉状态管理器不能用于指针转换?

时间:2014-03-04 17:23:07

标签: xaml windows-runtime winrt-xaml

这是我的标记

<Grid Height="50"  x:Name="TextGrid">
<VisualStateManager.VisualStateGroups>
    <VisualStateGroup x:Name="CommonStates">
        <VisualState x:Name="Normal"/>
        <VisualState x:Name="PointerOver">
            <Storyboard>
                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="TestGrid" Storyboard.TargetProperty="Background">
                    <DiscreteObjectKeyFrame KeyTime="0" Value="Green"/>
                </ObjectAnimationUsingKeyFrames>
                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="TestGrid" Storyboard.TargetProperty="Foreground">
                    <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource AppBarItemPointerOverBackgroundThemeBrush}"/>
                </ObjectAnimationUsingKeyFrames>
            </Storyboard>

        </VisualState>
    </VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid.Transitions>
    <TransitionCollection>
        <EntranceThemeTransition></EntranceThemeTransition>
    </TransitionCollection>

</Grid.Transitions>
<Grid x:Name="TestGrid" Background="SeaShell">
    <TextBlock Text="test" x:Name="testTextBlock" VerticalAlignment="Center" Foreground="OrangeRed" FontFamily="Calibri" FontSize="20" FontWeight="Light"></TextBlock>
</Grid>

我无法弄清楚为什么指针效果不起作用。

1 个答案:

答案 0 :(得分:3)

我们现在正在看什么?我看到了一些视觉状态,但是你没有说出它们的用途。当你将鼠标光标悬停在它上面时,我相信一个按钮会进入PointerOver状态,所以如果它是一个按钮就可以工作模板,但如果这只是一个UserControl - 你实际上需要处理一个指针事件并调用VisualStateManager来转换到PointerOver状态为你的控件,然后当指针返回到另一个状态退出控制。