关于WPF动画的简单例子
相信许多新人对WPF的动画十分感兴趣,但又不知道从何学起。在此,我通过几个简单的例子给大家简单的讲一下WPF的一种动画。
首先要引用命名空间:
using System.Windows.Media.Animation;
假设在窗体内新建一个按钮:
Grid grid=new Grid();//新建一个Grid布局容器 this.Content = grid; Button mybutton=new Button(); mybutton.Content="Click me!";//新建按钮 mybutton.Width=60; mybutton.Height=30; mybutton.Click += mybutton_Click;
grid.Children.Add(mybutton);
按钮单击事件:
Button mybutton = (Button)sender; DoubleAnimation myani = new DoubleAnimation(); //实例化一个DoubleAninmation对象 myani.From = mybutton.Width;//开始值 myani.To = mybutton.Width+100;//结束值 myani.Duration = TimeSpan.FromSeconds(3); //所用时间 Storyboard.SetTarget(myani, mybutton); //设置应用的对象 Storyboard.SetTargetProperty(myani, new PropertyPath("Width")); //设置应用的依赖项属性 Storyboard s = new Storyboard();// 实例化一个故事板 s.Children.Add(myani);//将先前动画添加进来 s.Begin(); //启动故事版
现在你可以运行一下试试,发现Button在2秒之内Width增加了100.
至此,一个简单的动画就完成了。当然,你还可以处理Story的Completed属性,创建一个恢复原状的动画,只需要忽略To属性:
DoubleAnimation mys = ((DoubleAnimation)clockgroup.Children[0].Timeline);// 获取当前的DoubleAnimation对象
Button mybutton=(Button)Storyboard.GetTarget(mys); //获取当前按钮对象
DoubleAnimation myani = new DoubleAnimation(); //实例化一个DoubleAninmation对象
myani.From = mybutton.Width;//开始值
//忽略结束值
myani.Duration = TimeSpan.FromSeconds(1); //所用时间
Storyboard.SetTarget(myani, mybutton); //设置应用的对象
Storyboard.SetTargetProperty(myani, new PropertyPath("Width")); //设置应用的依赖项属性
Storyboard s = new Storyboard();// 实例化一个故事板
s.Children.Add(myani);//将先前动画添加进来
s.Begin(); //启动故事版
怎么样,是不是很简单啊?除了DoubleAnimation动画,还有ColorAnimation,ByteAnimation等42个动画,它们中的一些是与DoubleAnimation是一样的用法,在此就不过多探讨了。
我也是新手,大家共同学习,高手见笑了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架