3
A
回答
6
我自己回答了這個問題。這裏是一些示例代碼。
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個「滴答」中的速度,可以在_Timer.Interval中減慢。經過12次剔除後,將最終調整至確切大小。
希望這有助於someome。
-1
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();
}
}
4
您可以使用窗口動畫此這裏是XAML
<Window x:Class="dlgControls" Name="dlgControls"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="" Height="300" Width="300">
<Window.Resources>
<Storyboard x:Key="showWin">
<DoubleAnimation Storyboard.TargetName="dlgControls" Storyboard.TargetProperty="Height" Duration="0:0:.5" To="300" BeginTime="0:0:1"/>
</Storyboard>
<Storyboard x:Key="hideWin">
<DoubleAnimation Storyboard.TargetName="dlgControls" Storyboard.TargetProperty="Height" Duration="0:0:.5" To="150" BeginTime="0:0:1"/>
</Storyboard>
</Window.Resources>
<Grid RenderTransformOrigin="0.5,0.5">
<Button Name="btnOpen" Content="Open" HorizontalAlignment="Left" Margin="184,98,0,0" VerticalAlignment="Top" Width="75"/>
<Button Name="btnClose" Content="Close" HorizontalAlignment="Left" Margin="184,222,0,0" VerticalAlignment="Top" Width="75"/>
</Grid>
</Window>
動畫使用這樣的代碼
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
相關問題
- 1. 相對於高度的自動寬度+調整窗口大小
- 2. 窗口寬度和調整大小
- 3. 調整窗口大小的Webview的寬度/高度調整大小
- 4. jQuery窗口調整大小問題 - 高度/寬度計算
- 5. 設置高度和寬度的控制窗口wihtin大小WPF
- 6. 調整窗口大小的div寬度
- 7. 在窗口調整大小設置最小高度和最小寬度
- 8. 爲WPF窗口寬度和高度設置動畫效果
- 9. Div的自動調整大小的窗口的寬度和高度
- 10. WPF行標題寬度和列標題高度調整大小
- 11. 在窗口調整大小的iframe的寬度調整大小
- 12. 寬度:調整窗口大小(CSS)時調整大小100%
- 13. 在窗口調整大小元素寬度調整大小jquery
- 14. 動畫寬度調整大小100%
- 15. 在調整窗口大小時調整滑塊的寬度/高度
- 16. C++如何獲得窗口大小(寬度和高度)?
- 17. 當窗口高度調整大小時調整圖像大小
- 18. 調整窗口大小調整頁眉和頁腳寬度
- 19. 動畫大小調整UIView的高度
- 20. WPF Storyboard無法調整窗口寬度與高度
- 21. 根據內容寬度和高度調整彈出窗口的大小
- 22. 更改圖像的寬度和高度,同時窗口調整大小
- 23. 在調整瀏覽器窗口大小時,背景圖像的寬度和高度都會調整大小
- 24. jQuery:動態設置div高度和窗口大小調整
- 25. PHP圖像大小調整 - 設置高度和寬度自動
- 26. AutoLayout動態調整大小UILabel的高度和寬度
- 27. 將畫布調整爲完整的瀏覽器窗口寬度和高度
- 28. 自動調整大小畫布到瀏覽器寬度和高度
- 29. 最大高度和寬度與jQuery的大小調整
- 30. 調整窗口大小時更新窗口內部高度
不能相信這不會有更多的選票。非常優雅,只是解決我的問題 – TaterJuice 2016-08-18 08:18:08