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 则返回 。
注意
当窗口托管在浏览器中时,无法获取此属性。