private void InitViewAndNeedCloseResourcees() { mainWindow = new MainWindow(); detailWindow = new DetailWindow(mainWindow); mainWindow.SetDetailWindow(detailWindow); detailWindow.IsVisibleChanged += DetailWindow_IsVisibleChanged; if (Settings.Default.MainWindowLeft > -200000 && Settings.Default.MainWindowTop > -200000) { mainWindow.Left = Settings.Default.MainWindowLeft; mainWindow.Top = Settings.Default.MainWindowTop; Dispatcher.InvokeAsync(new Action(() => { Tool.MoveWindowBackToWorkArea(mainWindow, mainWindow.windowPadding); mainWindow.isEdgeHide = true; mainWindow.TryToEdgeShow(); mainWindow.TryToEdgeHide(); })); } else { Dispatcher.InvokeAsync(new Action(() => { mainWindow.isEdgeHide = true; mainWindow.TryToEdgeShow(); mainWindow.TryToEdgeHide(); })); } InitializeTray(); mainWindow.Show(); CheckScreenCount(); Microsoft.Win32.SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged; SystemParameters.StaticPropertyChanged += SystemParameters_StaticPropertyChanged; timer.Elapsed += Timer_Elapsed; timer.Enabled = true; }
public MainWindow() { InitializeComponent(); InitializeWindowMenu(); detailWindow = new DetailWindow(this); detailWindow.IsVisibleChanged += DetailWindow_IsVisibleChanged; }
public MainWindow() { InitializeComponent(); InitializeWindowMenu(); detailWindow = new DetailWindow(this); detailWindow.IsVisibleChanged += DetailWindow_IsVisibleChanged; dispatcherTimer = new DispatcherTimer(); dispatcherTimer.Tick += DispatcherTimer_Tick; }
void ICanMoveDetailWindowToRightPlace.MoveDetailWindowToRightPlace(DetailWindow dw) { Thickness pa = windowMargin; Rect mainRect = new Rect(Left - pa.Left, Top - pa.Top, Width + pa.Left + pa.Right, Height + pa.Top + pa.Bottom); Rect workArea = SystemParameters.WorkArea; if (workArea.Bottom - mainRect.Bottom >= dw.Height)//bellow { dw.Top = mainRect.Bottom; if (mainRect.Left + dw.Width <= workArea.Right) { dw.Left = mainRect.Left; } else { dw.Left = mainRect.Right - dw.Width; } } else if (mainRect.Top - workArea.Top >= dw.Height)//top { dw.Top = mainRect.Top - dw.Height; if (mainRect.Left + dw.Width <= workArea.Right) { dw.Left = mainRect.Left; } else { dw.Left = mainRect.Right - dw.Width; } } else//left or right { if (mainRect.Right + dw.Width <= workArea.Right)//right { dw.Left = mainRect.Right; } else { dw.Left = mainRect.Left - dw.Width;//left } if (mainRect.Top + dw.Height <= workArea.Bottom) { dw.Top = mainRect.Top; } else { dw.Top = workArea.Bottom - dw.Height; } } }
public void SetDetailWindow(DetailWindow detail) { detailWindow = detail; }