/// <summary> /// Function that can be called from the main window every time the windows state of the main window changed. /// </summary> /// <param name="mainWindow">The main window.</param> public static void UpdateWorkbenchStateFromMainWindow(Window mainWindow) { if (mainWindow.WindowState == System.Windows.WindowState.Minimized) { return; } var orgObserve = (bool)mainWindow.GetValue(ObserveProperty); mainWindow.SetValue(ObserveProperty, false); WorkbenchState wb; if (mainWindow.RestoreBounds.IsEmpty) { wb = new WorkbenchState { IsMaximized = mainWindow.WindowState == System.Windows.WindowState.Maximized, Bounds = new Altaxo.Geometry.RectangleD2D(mainWindow.Left, mainWindow.Top, mainWindow.ActualWidth, mainWindow.ActualHeight) } } ; else { wb = new WorkbenchState() { IsMaximized = mainWindow.WindowState == System.Windows.WindowState.Maximized, Bounds = GuiHelper.ToAltaxo(mainWindow.RestoreBounds) } }; mainWindow.SetValue(ObservedWorkbenchStateProperty, wb); mainWindow.SetValue(ObserveProperty, orgObserve); } }
public void RestoreWorkbenchStateFromPropertyService() { WorkbenchState = Current.PropertyService.GetValue(PropertyKeyWorkbenchState, Altaxo.Main.Services.RuntimePropertyKind.UserAndApplicationAndBuiltin, () => null); }
public static void SetObservedWorkbenchState(Window frameworkElement, WorkbenchState observedValue) { frameworkElement.SetValue(ObservedWorkbenchStateProperty, observedValue); }