https://www.bilibili.com/video/BV1nY411a7T8?p=13
<Window x:Class="WPF04.Animation" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WPF04" mc:Ignorable="d" Title="Animation" Height="280" Width="600"> <Grid> <Button x:Name="btn" Content="执行动画" Width="100" Height="30" Margin="5" Click="Button_Click"></Button> </Grid> </Window>
using System; using System.Windows; using System.Windows.Controls; using System.Windows.Media.Animation; namespace WPF04 { /// <summary> /// Animation.xaml 的交互逻辑 /// </summary> public partial class Animation : Window { public Animation() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { //创建一个双精度的动画 DoubleAnimation anmation = new DoubleAnimation(); anmation.By = -30; //anmation.From = btn.Width; //设置动画的开始值 //anmation.To = btn.Width - 30;//设置动画的结束值 anmation.Duration = TimeSpan.FromSeconds(1);//持续时间 秒 anmation.AutoReverse = true; //自动返回 anmation.RepeatBehavior = new RepeatBehavior(2); //循环2次 anmation.Completed += Anmation_Completed; //动画完成的事件 //在当前按钮上执行该动画 btn.BeginAnimation(Button.WidthProperty, anmation); } private void Anmation_Completed(object? sender, EventArgs e) { btn.Content = "动画已完成"; } } }
本文来自博客园,作者:董锡振,转载请注明原文链接:https://www.cnblogs.com/dongxizhen/p/16496486.html