Save Window Position to Registry : Window « Windows Presentation Foundation « VB.Net Tutorial






<Window x:Class="Windows.SavePosition"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="SavePosition" Height="300" Width="300" >
  <StackPanel Margin="10">
    <Button Click="cmdSave_Click">Save Position</Button>
    <Button Click="cmdRestore_Click">Restore Position</Button>
  </StackPanel>
</Window>
//File:Window.xaml.vb

Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.Windows.Documents
Imports System.Windows.Input
Imports System.Windows.Media
Imports System.Windows.Media.Imaging
Imports System.Windows.Shapes
Imports Microsoft.Win32

Namespace Windows
  Public Partial Class SavePosition
    Inherits System.Windows.Window
    Public Sub New()
      InitializeComponent()
    End Sub

    Private Sub cmdSave_Click(sender As Object, e As RoutedEventArgs)
      WindowPositionHelper.SaveSize(Me)
    End Sub

    Private Sub cmdRestore_Click(sender As Object, e As RoutedEventArgs)
      WindowPositionHelper.SetSize(Me)
    End Sub
  End Class
  Public Class WindowPositionHelper
    Public Shared RegPath As String = "Software\MyApp\"

    Public Shared Sub SaveSize(win As Window)
      Dim key As RegistryKey = Registry.CurrentUser.CreateSubKey(RegPath & win.Name)
      key.SetValue("Bounds", win.RestoreBounds.ToString())
    End Sub

    Public Shared Sub SetSize(win As Window)
      Dim key As RegistryKey = Registry.CurrentUser.OpenSubKey(RegPath & win.Name)
      If key IsNot Nothing Then
        Dim bounds As Rect = Rect.Parse(key.GetValue("Bounds").ToString())

        win.Top = bounds.Top
        win.Left = bounds.Left
        If win.SizeToContent = SizeToContent.Manual Then
          win.Width = bounds.Width
          win.Height = bounds.Height
        End If
      End If
    End Sub
  End Class

End Namespace
WPF Save Window Position To Registry








16.57.Window
16.57.1.Custom WindowCustom Window
16.57.2.Set window size in XAMLSet window size in XAML
16.57.3.A simple user-login XAML pageA simple user-login XAML page
16.57.4.User login screen with no layout or formattingUser login screen with no layout or formatting
16.57.5.Automatically Size the Main Application Window to Accommodate Its ContentAutomatically Size the Main Application Window to Accommodate Its Content
16.57.6.Window OwnershipWindow Ownership
16.57.7.Creating the main panel and add to Window in CodeCreating the main panel and add to Window in Code
16.57.8.Show window based on button nameShow window based on button name
16.57.9.Set a Default ButtonSet a Default Button
16.57.10.Window with Menu, ToolBar, StatusBarWindow with Menu, ToolBar, StatusBar
16.57.11.Order of precedence for sizing-related properties that are implemented by Window.Order of precedence for sizing-related properties that are implemented by Window.
16.57.12.Use Window Activated and Deactivated event to control a media fileUse Window Activated and Deactivated event to control a media file
16.57.13.Animated Video WindowAnimated Video Window
16.57.14.Use WindowState to make full screen window, change resize mode to NoReSizeUse WindowState to make full screen window, change resize mode to NoReSize
16.57.15.Do not handle events until Window is fully initialized.Do not handle events until Window is fully initialized.
16.57.16.Load resource from Window ResourcesLoad resource from Window Resources
16.57.17.Launch a window with defined XAMLLaunch a window with defined XAML
16.57.18.Display window as dialogDisplay window as dialog
16.57.19.Save Window Position to RegistrySave Window Position to Registry
16.57.20.Center a Window to ScreenCenter a Window to Screen