1
我正在处理Windows Phone 8项目。我与这个按钮有关的问题:动画按钮的按下VisualState不会触发
<Button x:Name="decreaseFontButton" Foreground="{StaticResource GlobalBrush}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Pressed">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Height" Storyboard.TargetName="decreaseFontButton">
<DiscreteObjectKeyFrame KeyTime="0" Value="70"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="decreaseFontButton" Completed="ObjectAnimationUsingKeyFrames_Completed_1">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource GlobalBrush}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Button.Content>
<Image Source="/Assets/Player/sub_minus.png" Width="28" Height="28"/>
</Button.Content>
</Button>
是两个动画中没有一个被触发。我试图将VisualStateGroup的名称更改为FocusState和VisualState的名称为重点,但我没有看到任何更改。你能告诉我我做错了什么吗?
我很感谢您的关注!
没有什么不对您的故事板,你想只是如何调用它。它只需要作为控制模板并声明为资源。我会建议寻找一个默认的按钮模板,以及它如何使用VisualStateManager,如果这不能很快地揭示你的答案,我们可以很容易地告诉你你错过了什么,但你并不遥远。 – 2013-03-11 16:34:15
非常感谢您的努力,我已经做到了这一点,视觉效果如预期的那样,但我仍然没有发现为什么最初的解决方案不好。 – 2013-03-11 16:40:53
这只是因为VisualStateManager不能直接应用到UIElement,只需要在UIElement TargetType的控件模板中。没什么大不了的,很高兴你找到了你的补救办法。干杯:) – 2013-03-11 18:12:22