博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF动画: 窗体上下方向同时拉伸
阅读量:6660 次
发布时间:2019-06-25

本文共 992 字,大约阅读时间需要 3 分钟。

  一般情况下我们写一个动画, 改变窗口的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, 效果想当不错, 嘿嘿.

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

转载地址:http://ulzxo.baihongyu.com/

你可能感兴趣的文章
java和c/c++通过JNI相互调用
查看>>
Android端生成META-INF信息文件的Gradle插件 RapidMetaInfPlugin
查看>>
J2SE基础:10集合2
查看>>
80386的分段机制、分页机制和物理地址的形成
查看>>
MySQL5.7 GTID在线开启与关闭【转】
查看>>
记录:50多行程序中找出多写的一个字母e
查看>>
C# 时间与时间戳互转 13位
查看>>
CentOS7系统64位下搭建Python3.6环境及相关细节工具部署文章收集
查看>>
Zookeeper学习笔记——1 单机版本环境搭建
查看>>
DotNetCore跨平台~为debain系统添加阿里云加速
查看>>
JavaScript Alert 函数执行顺序问题
查看>>
【laravel5.4】发送alisms短信和163邮箱
查看>>
WorkerMan源码分析(resetStd方法,PHP中STDIN, STDOUT, STDERR的重定向)
查看>>
如何统计NFS的client在一段时间内收到了多少个字节?
查看>>
MVC教程八:母版页(布局页)视图
查看>>
Mybatis动态插入数据(使用trim标签)
查看>>
Openstack中为虚拟机使用CDROM光驱设备
查看>>
Linux内核剖析(二)Linux内核绪论
查看>>
使用shell脚本定时采集日志数据到hdfs分布式文件系统
查看>>
SUSE11&12 永久关闭防火墙
查看>>