DoubleAnimation是“Double兼容类型(Double、Float、int等)值从**变为**”的动画,Storyboard.TargetName属性为动画作用的控件名,Storyboard.TargetProperty为作用的控件属性名,From为变化的起始值,To为变化的结束值。
DoubleAnimation其他属性,AutoReverse自动反向播放;
RepeatBehavior=“Forever”永远重复播放(在不需要的时候尽快停止,否则可能会导致计算机无法进入省电模式),如果想重复三次则设置为“3x”;
Duration:动画在From、To值之间变化时的持续时长
<pre name="code" class="html"><Page.Resources>
<Storyboard x:Name="sb1">
<DoubleAnimation Storyboard.TargetName="st1" Storyboard.TargetProperty="ScaleX" From="0" To="3" AutoReverse="True"></DoubleAnimation>
</Storyboard>
<Storyboard x:Name="sb2">
<DoubleAnimation Storyboard.TargetName="pp1" Storyboard.TargetProperty="RotationY" From="0" To="360" Duration="00:00:03"></DoubleAnimation>
</Storyboard>
</Page.Resources>
<Grid>
<Button>
<Button.RenderTransform>
<ScaleTansform x:Name="st1"></ScaleTansform >
</Button.RenderTransform>
<Button.Projection>
<ScaleTansform x:Name="pp1" RotationY="30"></ScaleTansform >
</Button.Projection>
</Button>
</Grid>
sb1.Begin();
除了DoubleAnimation之外,还有很多其他动画,这些动画都从TimeLine类继承,都有的属性:AutoReserve、RepeatBehavior、Duration、Completed事件(播放完成)、BeginTime(延迟播放,不是立即播放)。
指定EasingFunction属性可以设定动画的缓动曲线,BounceEase效果等。
图片翻转代码:
<pre name="code" class="html"><Page.Resources>
<Storyboard x:Name="sbpp1">
<DoubleAnimation Storyboard.TargetName="ppImg" Storyboard.TargetProperty="RotationX" From="0" To="90"></DoubleAnimation>
</Storyboard>
<Storyboard x:Name="sbpp2">
<DoubleAnimation Storyboard.TargetName="ppImg" Storyboard.TargetProperty="RotationX" From="90" To="0"></DoubleAnimation>
</Storyboard>
</Page.Resources>
<Grid>
<Image Name="imgMM" Source="ms-appx:///Images/1.jpg">
<Image.Projection>
<PlaneProjection x:Name="ppImg"></PlaneProjection>
</Image.Projection>
</Image>
</Grid>
private void sbpp1_Completed(object sender, object e)
{
imgMM.Source=new BitmapImage(new Uri("ms-appx:///Images/2.jpg"));
sbpp2.Begin();
}
private void imgMM_Tapped(object sender, object e)
{
sbpp1.Begin();
}