/// <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 :; } }
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()}"; } }