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);

  但这样的效果并不是很佳, 因为动画之后的窗口位置可能不是那么令人满意, 因为窗口的上边缘是一直不动的, 只有下边缘在往下拉伸. 最后窗口停住的地方也很丑陋:

2010122022491114.jpg

  可能最希望的效果是, 程序运行后, 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, 效果想当不错, 嘿嘿.

  不知道大家还有没有更好的办法, 这也是本篇技术含量不是很高的博客存在的目的.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值