以下是两种Storyboard的用法:
1.1.xaml部分
- <UserControl.Resources>
- <Storyboard x:Name="Storyboard1">
- <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="myrect" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
- <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
- <SplineDoubleKeyFrame KeyTime="00:00:01" Value="143"/>
- </DoubleAnimationUsingKeyFrames>
- <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="myrect" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
- <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
- <SplineDoubleKeyFrame KeyTime="00:00:01" Value="9"/>
- </DoubleAnimationUsingKeyFrames>
- </Storyboard>
- </UserControl.Resources>
- <Grid x:Name="LayoutRoot" Background="White">
- <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">
- <Rectangle.RenderTransform>
- <TransformGroup>
- <ScaleTransform/>
- <SkewTransform/>
- <RotateTransform/>
- <TranslateTransform/>
- </TransformGroup>
- </Rectangle.RenderTransform>
- </Rectangle>
- <Button Height="42" HorizontalAlignment="Stretch" Margin="116,0,192,97" VerticalAlignment="Bottom" Content="Button" x:Name="bt"/>
- </Grid>
上边请注意Storyboard的名字是"Storyboard1".
1.2.调用Storyboard1
- public Page()
- {
- InitializeComponent();
- bt.Click += new RoutedEventHandler(bt_Click);
- }
- void bt_Click(object sender, RoutedEventArgs e)
- {
- Storyboard1.Begin();
- }
完成.
方法2,代码方式声明Storyboard
2.1xaml部分
- <Grid x:Name="LayoutRoot" Background="White">
- <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" />
- <Button Height="42" HorizontalAlignment="Stretch" Margin="116,0,192,97" VerticalAlignment="Bottom" Content="Button" x:Name="bt"/>
- </Grid>
2.2代码部分
- public Page()
- {
- InitializeComponent();
- bt.Click += new RoutedEventHandler(bt_Click);
- }
- void bt_Click(object sender, RoutedEventArgs e)
- {
- //实例化一个点到点动画,命名为da
- DoubleAnimation da = new DoubleAnimation();
- //开始参数为1
- da.From = 1;
- //结束参数为0
- da.To = 0;
- //实例化Storyboard,动画的载体,命名为sb
- Storyboard sb = new Storyboard();
- //设定动画与被控控件的关联
- Storyboard.SetTarget(da, myrect);
- //设定动画要控制的波控控件的属性,这里是控件透明度
- Storyboard.SetTargetProperty(da, new PropertyPath("(UIElement.Opacity)"));
- //把动画添加到Storyboard中
- sb.Children.Add(da);
- //开始播放
- sb.Begin();
- }
完成方法2
工程文件到我的资源里下载