Storyboard的基础应用方法

以下是两种Storyboard的用法:

 

1.1.xaml部分

  1.     <UserControl.Resources>
  2.         <Storyboard x:Name="Storyboard1">
  3.             <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="myrect" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
  4.                 <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
  5.                 <SplineDoubleKeyFrame KeyTime="00:00:01" Value="143"/>
  6.             </DoubleAnimationUsingKeyFrames>
  7.             <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="myrect" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
  8.                 <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
  9.                 <SplineDoubleKeyFrame KeyTime="00:00:01" Value="9"/>
  10.             </DoubleAnimationUsingKeyFrames>
  11.         </Storyboard>
  12.     </UserControl.Resources>
  13.     <Grid x:Name="LayoutRoot" Background="White">
  14.         <Rectangle Height="68" HorizontalAlignment="Left" Margin="116,45,0,0" VerticalAlignment="Top" Width="82" Fill="#FFF0DA47" Stroke="#FF000000" x:Name="myrect" RenderTransformOrigin="0.5,0.5">
  15.             <Rectangle.RenderTransform>
  16.                 <TransformGroup>
  17.                     <ScaleTransform/>
  18.                     <SkewTransform/>
  19.                     <RotateTransform/>
  20.                     <TranslateTransform/>
  21.                 </TransformGroup>
  22.             </Rectangle.RenderTransform>
  23.         </Rectangle>
  24.         <Button Height="42" HorizontalAlignment="Stretch" Margin="116,0,192,97" VerticalAlignment="Bottom" Content="Button" x:Name="bt"/>
  25.     </Grid>

上边请注意Storyboard的名字是"Storyboard1".

 

1.2.调用Storyboard1

  1.         public Page()
  2.         {
  3.             InitializeComponent();
  4.             bt.Click += new RoutedEventHandler(bt_Click);
  5.         }
  6.         void bt_Click(object sender, RoutedEventArgs e)
  7.         {
  8.             Storyboard1.Begin();
  9.         }

 

完成.

 

方法2,代码方式声明Storyboard

2.1xaml部分

  1.     <Grid x:Name="LayoutRoot" Background="White">
  2.         <Rectangle Height="68" HorizontalAlignment="Left" Margin="116,45,0,0" VerticalAlignment="Top" Width="82" Fill="#FFF0DA47" Stroke="#FF000000" x:Name="myrect" RenderTransformOrigin="0.5,0.5" />
  3.         <Button Height="42" HorizontalAlignment="Stretch" Margin="116,0,192,97" VerticalAlignment="Bottom" Content="Button" x:Name="bt"/>
  4.     </Grid>

2.2代码部分

  1.         public Page()
  2.         {
  3.             InitializeComponent();
  4.             bt.Click += new RoutedEventHandler(bt_Click);
  5.         }
  6.         void bt_Click(object sender, RoutedEventArgs e)
  7.         {
  8.             //实例化一个点到点动画,命名为da
  9.             DoubleAnimation da = new DoubleAnimation();
  10.             //开始参数为1
  11.             da.From = 1;
  12.             //结束参数为0
  13.             da.To = 0;
  14.             //实例化Storyboard,动画的载体,命名为sb
  15.             Storyboard sb = new Storyboard();
  16.             //设定动画与被控控件的关联
  17.             Storyboard.SetTarget(da, myrect);
  18.             //设定动画要控制的波控控件的属性,这里是控件透明度
  19.             Storyboard.SetTargetProperty(da, new PropertyPath("(UIElement.Opacity)"));
  20.             //把动画添加到Storyboard中
  21.             sb.Children.Add(da);
  22.             //开始播放
  23.             sb.Begin();
  24.         }

完成方法2

 

工程文件到我的资源里下载

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值