private void RestoreSettings() { object value = this.settings["WindowBounds"]; if (value is Rect r && !r.IsEmpty) { // make sure it is visible on the user's current screen configuration. var bounds = new Rect( XamlExtensions.ConvertFromDeviceIndependentPixels(r.X), XamlExtensions.ConvertFromDeviceIndependentPixels(r.Y), XamlExtensions.ConvertFromDeviceIndependentPixels(r.Width), XamlExtensions.ConvertFromDeviceIndependentPixels(r.Height)); var virtualScreen = new Rect(SystemParameters.VirtualScreenLeft, SystemParameters.VirtualScreenTop, SystemParameters.VirtualScreenWidth, SystemParameters.VirtualScreenHeight); if (virtualScreen.Contains(bounds)) { this.Left = XamlExtensions.ConvertToDeviceIndependentPixels((int)bounds.X); this.Top = XamlExtensions.ConvertToDeviceIndependentPixels((int)bounds.Y); this.Width = XamlExtensions.ConvertToDeviceIndependentPixels((int)bounds.Width); this.Height = XamlExtensions.ConvertToDeviceIndependentPixels((int)bounds.Height); } } UpdateTheme(); this.recentFiles.SetFiles(this.settings["RecentFiles"] as Uri[]); this.Visibility = Visibility.Visible; }
private void RestorePosition() { this.SizeChanged -= OnWindowSizeChanged; this.LocationChanged -= OnWindowLocationChanged; this.settings = App.Instance.LoadSettings(); if (settings.WindowLocation.X != 0 && settings.WindowSize.Width != 0 && settings.WindowSize.Height != 0) { // make sure it is visible on the user's current screen configuration. var bounds = new System.Drawing.Rectangle( XamlExtensions.ConvertFromDeviceIndependentPixels(settings.WindowLocation.X), XamlExtensions.ConvertFromDeviceIndependentPixels(settings.WindowLocation.Y), XamlExtensions.ConvertFromDeviceIndependentPixels(settings.WindowSize.Width), XamlExtensions.ConvertFromDeviceIndependentPixels(settings.WindowSize.Height)); var screen = System.Windows.Forms.Screen.FromRectangle(bounds); bounds.Intersect(screen.WorkingArea); this.Left = XamlExtensions.ConvertToDeviceIndependentPixels(bounds.X); this.Top = XamlExtensions.ConvertToDeviceIndependentPixels(bounds.Y); this.Width = XamlExtensions.ConvertToDeviceIndependentPixels(bounds.Width); this.Height = XamlExtensions.ConvertToDeviceIndependentPixels(bounds.Height); } this.Visibility = Visibility.Visible; this.SizeChanged += OnWindowSizeChanged; this.LocationChanged += OnWindowLocationChanged; }
private async void RestoreSettings() { Settings settings = await((App)App.Current).LoadSettings(); if (settings.WindowLocation.X != 0 && settings.WindowSize.Width != 0 && settings.WindowSize.Height != 0) { // make sure it is visible on the user's current screen configuration. var bounds = new System.Drawing.Rectangle( XamlExtensions.ConvertFromDeviceIndependentPixels(settings.WindowLocation.X), XamlExtensions.ConvertFromDeviceIndependentPixels(settings.WindowLocation.Y), XamlExtensions.ConvertFromDeviceIndependentPixels(settings.WindowSize.Width), XamlExtensions.ConvertFromDeviceIndependentPixels(settings.WindowSize.Height)); var screen = System.Windows.Forms.Screen.FromRectangle(bounds); bounds.Intersect(screen.WorkingArea); this.Left = XamlExtensions.ConvertToDeviceIndependentPixels(bounds.X); this.Top = XamlExtensions.ConvertToDeviceIndependentPixels(bounds.Y); this.Width = XamlExtensions.ConvertToDeviceIndependentPixels(bounds.Width); this.Height = XamlExtensions.ConvertToDeviceIndependentPixels(bounds.Height); } ConnectionPanel.DefaultUdpPort = settings.Port; this.Visibility = Visibility.Visible; }