다음을 통해 공유


방법: Thumb을 사용하여 끌기 설정

업데이트: 2007년 11월

이 예제에서는 Thumb 컨트롤을 사용하여 Canvas 컨트롤의 크기를 조정하는 방법을 보여 줍니다.

예제

Thumb 컨트롤은 ThumbDragStarted, DragDeltaDragCompleted 이벤트를 모니터링하여 컨트롤을 이동하거나 크기를 조정하는 데 사용할 수 있는 끌기 기능을 제공합니다.

끌기 작업은 먼저 Thumb 컨트롤에 마우스 포인터를 두고 마우스 왼쪽 단추를 눌러 시작합니다. 마우스 왼쪽 단추를 누르고 있는 동안에는 끌기 작업이 계속됩니다. 끌기 작업 중 DragDelta가 두 번 이상 발생할 수 있습니다. 발생할 때마다 DragDeltaEventArgs 클래스가 마우스 위치 변경에 해당하는 위치 변경을 제공합니다. 마우스 왼쪽 단추를 놓으면 끌기 작업이 끝납니다. 끌기 작업은 새 좌표를 제공하기만 하고 자동으로 Thumb의 위치를 바꾸지는 않습니다.

다음 예제에서는 Canvas 컨트롤의 자식 요소인 Thumb 컨트롤을 보여 줍니다. 해당 DragDelta 이벤트에 대한 이벤트 처리기가 Thumb을 이동하고 Canvas의 크기를 조정하는 논리를 제공합니다. DragStartedDragCompleted 이벤트의 이벤트 처리기가 끌기 작업 중 Thumb의 색을 변경합니다. 다음 예제에서는 Thumb을 정의합니다.

<Thumb Name="myThumb" Canvas.Left="80" Canvas.Top="80" Background="Blue" 
      Width="20" Height="20" DragDelta="onDragDelta" 
      DragStarted="onDragStarted" DragCompleted="onDragCompleted"
      />

다음 예제에서는 마우스 이동에 응답하여 Thumb을 이동하고 Canvas의 크기를 조정하는 DragDelta 이벤트 처리기를 보여 줍니다.

void onDragDelta(object sender, DragDeltaEventArgs e)
{
    //Move the Thumb to the mouse position during the drag operation
    double yadjust = myCanvasStretch.Height + e.VerticalChange;
    double xadjust = myCanvasStretch.Width + e.HorizontalChange;
    if ((xadjust >= 0) && (yadjust >= 0))
    {
        myCanvasStretch.Width = xadjust;
        myCanvasStretch.Height = yadjust;
        Canvas.SetLeft(myThumb, Canvas.GetLeft(myThumb) +
                                e.HorizontalChange);
        Canvas.SetTop(myThumb, Canvas.GetTop(myThumb) +
                                e.VerticalChange);
        changes.Text = "Size: " +
                        myCanvasStretch.Width.ToString() +
                         ", " +
                        myCanvasStretch.Height.ToString();
    }
}

다음 예제에서는 DragStarted 이벤트 처리기를 보여 줍니다.

Private Sub onDragStarted(ByVal sender As Object, ByVal e As DragStartedEventArgs)
    myThumb.Background = Brushes.Orange
End Sub
void onDragStarted(object sender, DragStartedEventArgs e)
{
    myThumb.Background = Brushes.Orange;
}

다음 예제에서는 DragCompleted 이벤트 처리기를 보여 줍니다.

Private Sub onDragCompleted(ByVal sender As Object, _
                  ByVal e As DragCompletedEventArgs)
    myThumb.Background = Brushes.Blue
End Sub
void onDragCompleted(object sender, DragCompletedEventArgs e)
{
    myThumb.Background = Brushes.Blue;
}

전체 샘플을 보려면 Thumb 끌기 기능 샘플을 참조하십시오.

참고 항목

참조

Thumb

DragStarted

DragDelta

DragCompleted