위젯같은 형태로 WPF 윈도우를 구성하는 것은 됐는데, 문제는..
타이틀바가 없어졌으니 드레그 처리를 어떻게 하느냐 인데..

마우스클릭 -> 드레그 시작-> 마우스 위치 변화를 체크해서 윈도우 위치변경 -> 마우스업에서 위치변경 해제
이렇게 하는 방법을 고려하다가....
의외로 쉬운 방법을 찾았다.

블렌드 에서 드레그가 일어날 곳의 엘리먼트의 프로퍼티탭을 선택하고 이벤트 속성을 선택하면
이벤트 목록이 쭉 나온다.(이미지 캡쳐에 실패...컴문제인듯...ㅜㅜ)

그중에 PreviewMouseLeftButtonDown 이벤트를 선택하고 이 이벤트가 발생할 때 처리할 이벤트 핸들러 이름을 적는다. 만약 DragAttempt 라고 적으면 비주얼 스튜디오가 뜨면서 cs 파일에 DragAttempt 메소드가 생성된다.

 private void DragAttempt(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            this.DragMove(); //여기서  this 는 윈도우다.
            e.Handled = true;
        }

위와 같이 작성하면..

그냥 된다.

삽질할 뻔 햇다.


댓글을 달아 주세요

  1. Favicon of http://gongdo.tistory.com BlogIcon 공도 2007.09.19 20:57 신고 Address Modify/Delete Reply

    반갑습니다. :)
    처음에 WPF만지작 거리면서 보더 없는 윈도의 드래깅이 object.DragMove()메서드 하나로 끝난다는 사실에 감격했던 기억이 나요. 그때 한참 VB로 서브클래싱해서 윈도 그리고 어쩌고하는 삽질중이었던지라 그 감동은 정말 컸었거든요. ^^

    • Favicon of http://steelleg.tistory.com BlogIcon 무쇠다리 2007.09.20 09:09 신고 Address Modify/Delete

      반갑습니다.공도님
      웹개발을 주로 하다가 WPF 연습삼아 공부중인데, 재미가 쏠쏠하네요.
      이렇게 간단히 처리가 되니까, MS 가 개발자를 바보로 만든다는 소리가 나오는 것 같군요.
      하지만 전 맘에 듭니다.^^