프로젝트

일반

사용자정보

개정판 f44e0cd0

IDf44e0cd02864830f609899b5b63df047411bfa07
상위 8295a079
하위 f458ee80

이지연이(가) 9달 전에 추가함

issue #000: MARKUS를 드래그하여 모니터 상단으로 이동 후 드랍하면 작업 표시줄을 가리는 현상 수정

Change-Id: I1449f5bd6475b733966697923f2fdc40ecbee976

차이점 보기:

KCOM/MainWindow.xaml.cs
90 90
        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
91 91
        {
92 92
            InitializeComponent();
93

  
93
            //Loaded 이벤트에서 MaxHeight를 설정 모니터가 1개일때만
94
            //MaxHeight = SystemParameters.WorkArea.Height;
95
            //LocationChanged : 모니터가 2개 이상이고, 모니터의 해상도가 다를 때에 설정
96
            this.LocationChanged += Window_LocationChanged;
94 97
            //cursor change  
95 98
            this.Cursor = new Cursor(App.DefaultArrowCursorStream);
96 99

  
......
173 176
                }
174 177
            }
175 178
        }
176

  
179
        /// <summary>
180
        /// 멤버 변수로 현 사용자의 모든 모니터들의 상태를 가져온다.
181
        /// Window의 LocationChanged Event를 통해 Window가 이동할 때마다 어떤 모니터에 있는지를 확인
182
        /// Window가 어떤 모니터에 있는지의 기준은 각 Window의 중앙 부분 
183
        /// Sum 은 모니터들의 왼쪽 끝 부터 오른쪽 끝까지의 합
184
        /// 현재 Window의 중앙은 Left 값 + Width의 반
185
        /// um보다 작다면 현재 더하게 된 Screen 안에 있다는 뜻이므로 현재 더한 item의 WorkingArea의 Height를MaxHeight로 설정   
186
        /// </summary>
187
        System.Windows.Forms.Screen[] screens = System.Windows.Forms.Screen.AllScreens;
188
        private void Window_LocationChanged(object sender, EventArgs e) 
189
        { 
190
            int sum = 0; 
191
            foreach (var item in screens) 
192
            { 
193
                sum += item.WorkingArea.Width; 
194
                if (sum >= this.Left + this.Width / 2) 
195
                {                    
196
                    this.MaxHeight = item.WorkingArea.Height;
197
                    this.WindowState = WindowState.Normal;
198
                    this.CustomState = WindowState.Maximized;
199
                    break;                    
200
                } 
201
            } 
202
        }
203
        
177 204
        private Point GetScreenCenter()
178 205
        {
179 206
            Point result = new Point();

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)