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






Save Window Position to Registry

Save Window Position to Registry
     

<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

   
    
    
    
    
  








Related examples in the same category

1.Custom Window
2.Set window size in XAMLSet window size in XAML
3.A simple user-login XAML pageA simple user-login XAML page
4.User login screen with no layout or formattingUser login screen with no layout or formatting
5.Automatically Size the Main Application Window to Accommodate Its ContentAutomatically Size the Main Application Window to Accommodate Its Content
6.Window.CommandBindingsWindow.CommandBindings
7.Window OwnershipWindow Ownership
8.Window.DragMoveWindow.DragMove
9.Window Closing and Closed eventWindow Closing and Closed event
10.Creating the main panel and add to Window in CodeCreating the main panel and add to Window in Code
11.Change window cursorChange window cursor
12.Show window based on button nameShow window based on button name
13.Listen to Window loaded eventListen to Window loaded event
14.Create Window and add window closing event handlerCreate Window and add window closing event handler
15.Activate window, close window, bring window to frontActivate window, close window, bring window to front
16.Set a Default ButtonSet a Default Button
17.Non-Rectangular windowNon-Rectangular window
18.Window Preview Key EventsWindow Preview Key Events
19.Window with Menu, ToolBar, StatusBarWindow with Menu, ToolBar, StatusBar
20.Order of precedence for sizing-related properties that are implemented by Window.Order of precedence for sizing-related properties that are implemented by Window.
21.Use Window Activated and Deactivated event to control a media fileUse Window Activated and Deactivated event to control a media file
22.Transparent WindowTransparent Window
23.Animated Video WindowAnimated Video Window
24.Use WindowState to make full screen window, change resize mode to NoReSize
25.Do not handle events until Window is fully initialized.Do not handle events until Window is fully initialized.
26.Window On Mouse move eventWindow On Mouse move event
27.Window On Mouse up eventWindow On Mouse up event
28.Window mouse down eventWindow mouse down event
29.Window Preview mouse down eventWindow Preview mouse down event
30.Window mouse up eventWindow mouse up event
31.Load resource from Window ResourcesLoad resource from Window Resources
32.Launch a window with defined XAMLLaunch a window with defined XAML
33.Create a non-rectangular windowCreate a non-rectangular window
34.Close a window with Escape key pressedClose a window with Escape key pressed
35.Display window as dialogDisplay window as dialog
36.Windows Transparent BackgroundWindows Transparent Background
37.Center a Window to ScreenCenter a Window to Screen