Window.RestoreBounds 属性

定义

获取窗口在最小化或最大化之前的大小和位置。

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 在关闭应用程序之前保存窗口的最后大小和位置,并在应用程序下次开始将窗口还原为用户离开窗口的方式时检索这些值。

如果在窗口显示之前或关闭后查询 RestoreBoundsEmpty 则返回 。

注意

当窗口托管在浏览器中时,无法获取此属性。

适用于