动画窗口resize(宽度和高度)C#WPF

我正在寻找一些关于动画窗口大小调整窗口大小的帮助! 似乎无法想出这一个!

我只是在使用atm。

this.Width = 500; 

任何帮助都会很棒! 谢谢。

我自己回答了这个问题。 这是一些示例代码。

  static System.Windows.Forms.Timer _Timer = new System.Windows.Forms.Timer(); int _Stop = 0; private void This_Loaded(object sender, RoutedEventArgs e) { _Timer.Tick += new EventHandler(timer_Tick); _Timer.Interval = (20); resize(500,500) } private void timer_Tick(Object myObject, EventArgs myEventArgs) { if (_Stop == 0) { _RatioHeight = ((this.Height - _Height) / 12)* -1; _RatioWidth = ((this.Width - _Width) / 12)* -1; } _Stop++; this.Height += _RatioHeight; this.Width += _RatioWidth; if (_Stop == 12) { _Timer.Stop(); _Timer.Enabled = false; _Timer.Dispose(); _Stop = 0; this.Height = _Height; this.Width = _Width; } } public void resize(double _PassedHeight, double _PassedWidth) { _Height = _PassedHeight; _Width = _PassedWidth; _Timer.Enabled = true; _Timer.Start(); } 

以12“ticks”非常快速地调整窗口大小,可以在_Timer.Interval中减慢速度。 在12个刻度之后将对其进行抛光,最终resize到精确尺寸。

希望这有助于某些人。

你可以使用窗口动画这里是xaml

               

动画使用这样的代码

 Imports System.Windows.Media.Animation Public Class dlgControls Dim showWin As Storyboard Dim hideWin As Storyboard Private Sub btnOpen_Click(sender As Object, e As Windows.RoutedEventArgs) Handles btnOpen.Click BeginStoryboard(showWin) End Sub Private Sub dlgControls_Loaded(sender As Object, e As Windows.RoutedEventArgs) Handles Me.Loaded showWin = Me.Resources("showWin") hideWin = Me.Resources("hideWin") End Sub Private Sub btnClose_Click(sender As Object, e As Windows.RoutedEventArgs) Handles btnClose.Click BeginStoryboard(hideWin) End Sub End Class 
 System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer(); dispatcherTimer.Tick += dispatcherTimer_Tick; dispatcherTimer.Interval = new TimeSpan(0,0,0,0,10); // Control animation speed / how often the tick will be called. dispatcherTimer.Start(); private void dispatcherTimer_Tick(object sender, EventArgs e) { if ( this.Width < 500 ) { this.Width += 10; } else { DispatcherTimer timer = (DispatcherTimer)sender; timer.Stop(); } }