'DragMove()'에 해당되는 글 1건

  1. 2008/07/27 DragMove()를 이용한 Window이동
WPF2008/07/27 05:23

사용자 삽입 이미지

우리는 Window를 사용할 때 창을 이동하려면 위 그림에서 빨간색으로 표시된 부분인 제목 표시줄에서 드래그를 하여 창을 이동시킵니다. 하지만 만약에 아래 그림과 같이 제목표시줄이 없는 Window일 경우 에는 어떻게 창을 이동시킬 수 있을 가요?

사용자 삽입 이미지

Win32나 MFC등에서는 보통 이러한 경우 창 이동과 관련된 부분을 직접 구현 해야 하지만 WPF에서는 이러한 상황 에서 개발자의 부담을 덜어드리고자 간단한 메서드 호출 한번으로 마우스를 사용한 창 이동 기능을 구현 할 수 있습니다. Window Class에서 DragMove 메서드를 제공하는데요, 이 는 마우스 왼쪽 단추를 누른 상태로 창 클라이언트 영역의 노출된 영역에서 창을 끌 수 있도록 돕습니다. 사용방법이 매우 간단합니다. 아래와 같이 마우스를 사용해서 창을 끌 수 있도록 하고 싶은 객체의 MouseLeftButtonDown이벤트에 DragMove()메서드를 호출해주기만 하면 됩니다.

void Window1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)

{

this.DragMove();

}

예를 들어 보겠습니다. WindowStyle이 None이고 화면에 빨간색 사각형이 존재하는 Window가 있습니다. 이때 빨간색 사각형을 드래그하면 창을 움직이고자 한다면 아래와 같이 사용할 수 있습니다.

사용자 삽입 이미지

<Window x:Class="Blog.Window1"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="Window1" Height="300" Width="300" WindowStyle="None">

<Grid>

<Rectangle Width="100" Height="100" Fill="Red"

MouseLeftButtonDown="Rectangle_MouseLeftButtonDown"/>

</Grid>

</Window>

private void Rectangle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)

{

this.DragMove();

}

빨간색 사각형의 MouseLeftButton이벤트를 핸들링 하고 사각형이 포함된 Window의 DragMove메서드를 호출합니다. 아주 간단한 방법이지만 알아두면 유용한 팁이니 참고 하시기 바랍니다.
사용자 삽입 이미지

크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 곡스