Ejemplo n.º 1
0
 /// <summary>
 /// MultiMonitorを受け取り
 /// BelongMonitorとNeedRelocateの値を設定する
 /// </summary>
 public void SetBelongMonitor(MultiMonitor multiMonitor)
 {
     Monitor = multiMonitor;
     foreach (var window in WindowList)
     {
         var tempBelong = WindowObj.OutOfRangeMonitor;
         foreach (var screen in multiMonitor.ScreenList)
         {
             // 完全に内包するモニタを見つけた
             if (Common.IsInclude(screen.Bounds, window.Rect))
             {
                 window.BelongMonitor = screen.ScreenNum;
                 window.NeedRelocate  = false;
                 goto ENDLOOP;
             }
             // 一部内包するモニターだった (一部のみのモニターが複数存在するときはどっちの所属でもいい)
             if (Common.ExtraInclude(screen.Bounds, window.Rect) == Relation.OtherInclude)
             {
                 tempBelong = screen.ScreenNum;
             }
         }
         // 範囲外モニターならノータッチ
         if (tempBelong != WindowObj.OutOfRangeMonitor)
         {
             window.BelongMonitor = tempBelong;
             window.NeedRelocate  = true;
         }
         ENDLOOP :;
     }
 }
Ejemplo n.º 2
0
        public void SaveWindow()
        {
            lock (lockObject)
            {
                var dateStr = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
                if (WindowManager.IsSave)
                {
                    InfoText.Text = $"{Properties.Resources.SaveTrue} {dateStr}";
                }
                else
                {
                    InfoText.Text = $"{Properties.Resources.SaveFalse} {dateStr}";
                }

                if (!WindowManager.IsSave)
                {
                    return;
                }
                wm.GetWindowList();
                var m = new MultiMonitor();
                wm.SetBelongMonitor(m);
                wm.Save();
                DebugBlock.Text = $"{m.ToString()}";
            }
        }