우리는 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메서드를 호출합니다. 아주 간단한 방법이지만 알아두면 유용한 팁이니 참고 하시기 바랍니다.

