zoukankan      html  css  js  c++  java
  • 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, 效果想当不错, 嘿嘿.

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

  • 相关阅读:
    shell管道和重定向
    shell脚本
    Hexo学习笔记--常用命令及部署步骤
    Git学习笔记--Git常用命令
    Spark link集合
    Struts2学习笔记--Struts2的体系结构
    JNI错误记录--JNI程序调用本地库时JVM崩溃
    Hibernate学习笔记--使用ThreadLocal
    Hibernate学习笔记--核心编程
    Hibernate学习笔记--映射配置文件详解
  • 原文地址:https://www.cnblogs.com/technology/p/1912151.html
Copyright © 2011-2022 走看看