WPF动画: 窗体上下方向同时拉伸
一般情况下我们写一个动画, 改变窗口的height属性, 让窗口随着时间轴慢慢变大.
DoubleAnimation a = new DoubleAnimation();
a.From = 300;
a.To = 600;
a.Duration = new Duration(TimeSpan.Parse("0:0:3"));
this.BeginAnimation(MainWindow.HeightProperty, a);
但这样的效果并不是很佳, 因为动画之后的窗口位置可能不是那么令人满意, 因为窗口的上边缘是一直不动的, 只有下边缘在往下拉伸. 最后窗口停住的地方也很丑陋:
可能最希望的效果是, 程序运行后, pia~pia~pia~程序上边框和下边框同时向两边拉伸, 而不是只有下边框往下方拉伸. 找了半天, 没有发现动画直接有某个方法可以这样设置, 最后只能按照一开始想的那样: 一边改变窗口的Height, 一般改变窗口的Location, 在WPF里定义窗口在屏幕的位置使用的是Top和Left属性.
DoubleAnimation a = new DoubleAnimation();
a.From = 300;
a.To = 600;
a.Duration = new Duration(TimeSpan.Parse("0:0:3"));
DoubleAnimation b = new DoubleAnimation();
b.From = Top;
b.To = b.From - 150;
b.Duration = new Duration(TimeSpan.Parse("0:0:3"));
this.BeginAnimation(MainWindow.HeightProperty, a);
this.BeginAnimation(Window.TopProperty, b);
这样一边把窗口的Height从300变到600, 一边把窗口的位置, 从默认(CenterScreen)的位置, 高度慢慢往上提一个150像素. 两个动画综合起来, 效果就是窗口两边同时拉伸了~~~~F5, 效果想当不错, 嘿嘿.
不知道大家还有没有更好的办法, 这也是本篇技术含量不是很高的博客存在的目的.
作者:Create Chen
出处:http://technology.cnblogs.com
说明:文章为作者平时里的思考和练习,可能有不当之处,请博客园的园友们多提宝贵意见。
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?