WPF動畫 窗體上下方向同時拉伸

2021-09-08 14:22:40 字數 1405 閱讀 4138

一般情況下我們寫乙個動畫, 改變視窗的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, 效果想當不錯, 嘿嘿.

不知道大家還有沒有更好的辦法, 這也是本篇技術含量不是很高的部落格存在的目的.

WPF動畫 窗體上下方向同時拉伸

一般情況下我們寫乙個動畫,改變視窗的height屬性,讓視窗隨著時間軸慢慢變大.doubleanimation a new doubleanimation a.from 300 a.to 600 a.duration new duration timespan.parse 0 0 3 this be...

WPF動畫 窗體上下方向同時拉伸

一般情況下我們寫乙個動畫,改變視窗的height屬性,讓視窗隨著時間軸慢慢變大.doubleanimation a new doubleanimation a.from 300 a.to 600 a.duration new duration timespan.parse 0 0 3 this be...

wpf 動畫 WPF中監視動畫進度

前台xaml 1.新增乙個progressbar監視進度,注意這裡最大值設定為1,因為動畫始終clock的currentprocess屬性最大值是1。2.響應故事板的currenttimeinvalidated事件 後台 該事件在動畫前進乙個步長時發生 private void storyboard...