Window.RestoreBounds 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得視窗在最小化或最大化之前的大小和位置。
public:
property System::Windows::Rect RestoreBounds { System::Windows::Rect get(); };
public System.Windows.Rect RestoreBounds { [System.Security.SecurityCritical] get; }
public System.Windows.Rect RestoreBounds { get; }
[<get: System.Security.SecurityCritical>]
member this.RestoreBounds : System.Windows.Rect
member this.RestoreBounds : System.Windows.Rect
Public ReadOnly Property RestoreBounds As Rect
屬性值
Rect,指定視窗在最小化或最大化之前的大小和位置。
- 屬性
範例
下列範例會使用 RestoreBounds 和 隔離儲存區來確保視窗的大小和位置與前一次顯示視窗的時間相同。
<Window x:Class="WindowRestoreBoundsSnippets.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WindowRestoreBoundsSnippets"
Closing="MainWindow_Closing"
>
</Window>
using System;
using System.ComponentModel;
using System.IO;
using System.IO.IsolatedStorage;
using System.Windows;
Imports System.ComponentModel
Imports System.IO
Imports System.IO.IsolatedStorage
Imports System.Windows
public partial class MainWindow : Window {
string filename = "settings.txt";
public MainWindow() {
InitializeComponent();
// Refresh restore bounds from previous window opening
IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForAssembly();
try {
using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream(this.filename, FileMode.Open, storage))
using (StreamReader reader = new StreamReader(stream)) {
// Read restore bounds value from file
Rect restoreBounds = Rect.Parse(reader.ReadLine());
this.Left = restoreBounds.Left;
this.Top = restoreBounds.Top;
this.Width = restoreBounds.Width;
this.Height = restoreBounds.Height;
}
}
catch (FileNotFoundException ex) {
// Handle when file is not found in isolated storage, which is when:
// * This is first application session
// * The file has been deleted
}
}
void MainWindow_Closing(object sender, CancelEventArgs e) {
// Save restore bounds for the next time this window is opened
IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForAssembly();
using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream(this.filename, FileMode.Create, storage))
using (StreamWriter writer = new StreamWriter(stream)) {
// Write restore bounds value to file
writer.WriteLine(this.RestoreBounds.ToString());
}
}
}
Partial Public Class MainWindow
Inherits Window
Private filename As String = "settings.txt"
Public Sub New()
InitializeComponent()
' Refresh restore bounds from previous window opening
Dim storage As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForAssembly()
Try
Using stream As New IsolatedStorageFileStream(Me.filename, FileMode.Open, storage)
Using reader As New StreamReader(stream)
' Read restore bounds value from file
Dim restoreBounds As Rect = Rect.Parse(reader.ReadLine())
Me.Left = restoreBounds.Left
Me.Top = restoreBounds.Top
Me.Width = restoreBounds.Width
Me.Height = restoreBounds.Height
End Using
End Using
Catch ex As FileNotFoundException
' Handle when file is not found in isolated storage, which is when:
' * This is first application session
' * The file has been deleted
End Try
End Sub
Private Sub MainWindow_Closing(ByVal sender As Object, ByVal e As CancelEventArgs)
' Save restore bounds for the next time this window is opened
Dim storage As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForAssembly()
Using stream As New IsolatedStorageFileStream(Me.filename, FileMode.Create, storage)
Using writer As New StreamWriter(stream)
' Write restore bounds value to file
writer.WriteLine(Me.RestoreBounds.ToString())
End Using
End Using
End Sub
End Class
備註
還原矩形是視窗最小化或最大化之前所佔用的區域。 您可以使用 RestoreBounds 在關閉應用程式之前儲存視窗的最後一個大小和位置,並在下次應用程式開始將視窗還原至使用者離開的方式時擷取這些值。
如果您在視窗顯示之前或關閉視窗之後查詢 RestoreBounds , Empty 則會傳回 。
注意
當視窗裝載在瀏覽器中時,您無法取得這個屬性。