コード例 #1
0
 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;
 }
コード例 #2
0
 public MainWindow()
 {
     InitializeComponent();
     InitializeWindowMenu();
     detailWindow = new DetailWindow(this);
     detailWindow.IsVisibleChanged += DetailWindow_IsVisibleChanged;
 }
コード例 #3
0
 public MainWindow()
 {
     InitializeComponent();
     InitializeWindowMenu();
     detailWindow = new DetailWindow(this);
     detailWindow.IsVisibleChanged += DetailWindow_IsVisibleChanged;
     dispatcherTimer       = new DispatcherTimer();
     dispatcherTimer.Tick += DispatcherTimer_Tick;
 }
コード例 #4
0
        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;
                }
            }
        }
コード例 #5
0
 public void SetDetailWindow(DetailWindow detail)
 {
     detailWindow = detail;
 }