2011-05-04 40 views
0

我创建了一个按钮,它的外观改变时,在不同的状态,我这样做(作为一个例子)被点击向下按钮时的方式:这是处理此功能最直接的方法吗?

<vsm:VisualState x:Name="Pressed"> 
             <Storyboard> 
              <ColorAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.Background).(SolidColorBrush.Color)"> 
               <SplineColorKeyFrame KeyTime="00:00:00" Value="Green"/> 
              </ColorAnimationUsingKeyFrames> 
              <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.RenderTransform). (TransformGroup.Children)[0].(ScaleTransform.ScaleX)"> 
               <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0.94"/> 
              </DoubleAnimationUsingKeyFrames> 
              <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.RenderTransform). (TransformGroup.Children)[0].(ScaleTransform.ScaleY)"> 
               <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0.94"/> 
              </DoubleAnimationUsingKeyFrames> 
             </Storyboard> 
            </vsm:VisualState> 

有没有一种方法,我可以使用更少的代码来完成此操我只希望按比例尺和颜色时都立即变为绿色,有没有办法在不使用关键帧的情况下进行操作?

感谢您的帮助!

+1

只是'DoubleAnimation'或'ColorAnimation',我想。但无论如何,它都必须有3个动画。 – vorrtex 2011-05-04 16:29:43

回答

1

这可以写成这样:

<ColorAnimation Duration="0" To="Green" Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.Background).(SolidColorBrush.Color)" /> 
<DoubleAnimation Duration="0" To="0.94" Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" /> 
<DoubleAnimation Duration="0" To="0.94" Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" /> 

一般的动画更容易理解和使用,并有当帧动画可以使用isnted一般动画的极少数情况下。

相关问题