2014-01-20 49 views
1

我的Pressed状态正在降低Button内容的不透明度。动画从按下到正常按钮状态的转换

我想动画从Pressed转换回Normal,这样就需要3秒的时间才能发生。我试过定义一个VisualTransition,但它不起作用。按下我的按钮立即返回正常,我看不到从0.5逐渐回到1的不透明度。

<VisualStateGroup x:Name="CommonStates"> 
    <VisualStateGroup.Transitions> 
     <VisualTransition From="Pressed" 
          To="Normal" 
          GeneratedDuration="0:0:3" /> 
    </VisualStateGroup.Transitions> 
    <VisualState x:Name="Normal" /> 
    <VisualState x:Name="MouseOver" /> 
    <VisualState x:Name="Pressed"> 
     <Storyboard> 
      <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" 
              Storyboard.TargetName="ContentContainer"> 
       <DiscreteObjectKeyFrame KeyTime="0" 
             Value="0.5" /> 
      </ObjectAnimationUsingKeyFrames> 
     </Storyboard> 
    </VisualState> 
</VisualStateGroup> 

我想知道我在做什么错了。

+1

你使用混合的创建动画?你可以实时看到你的动画。真的很容易创建混合动画。 – MatDev8

+0

我没有使用混合。我现在只是尝试了一下,对我来说,如何使用这个工具来解决我的问题并不明显。 – siger

+0

用键创建你的故事板(动画)。创建行为=> ControlStoryboardAction并链接到您的控件。例如,为1个不透明度从1到1的按钮创建一个动画。 Juste链接到其他按钮,你会看到动画。 – MatDev8

回答

0

它是不是在手机上或使用鼠标的开发环境内工作? 如果是后者,是否尝试将VisualTransition改为Pressed-> MouseOver?用鼠标不可能从按下→正常,因为鼠标仍然会结束。

除了这种可能性,乍看之下一切看起来都不错。

(我发现一个有用的资源是http://samples.msdn.microsoft.com/Silverlight/SampleBrowser/index.htm#/?sref=CustomTemplateSamples&id=4,这虽然为Silverlight仍然应该是有益的WPF)

+0

没有在电话上工作(我不能尝试模拟器,因为我的CPU不是SLAT兼容的)。 – siger