다음을 통해 공유


InkCanvas.SelectionResizing 이벤트

정의

선택된 스트로크 및 요소의 크기가 조정되기 전에 발생합니다.

public:
 event System::Windows::Controls::InkCanvasSelectionEditingEventHandler ^ SelectionResizing;
public event System.Windows.Controls.InkCanvasSelectionEditingEventHandler SelectionResizing;
member this.SelectionResizing : System.Windows.Controls.InkCanvasSelectionEditingEventHandler 
Public Custom Event SelectionResizing As InkCanvasSelectionEditingEventHandler 
Public Event SelectionResizing As InkCanvasSelectionEditingEventHandler 

이벤트 유형

예제

다음 예제에서는 사용자가 원래 크기보다 작은 선택을 하지 못하도록 합니다.

Rect selectionBounds;

// Don't allow the user to make the selection smaller than its original size.
void inkCanvas1_SelectionResizing(object sender, InkCanvasSelectionEditingEventArgs e)
{
    if (selectionBounds == null || selectionBounds.IsEmpty)
    {
        return;
    }

    double resizeHeight;
    double resizeWidth;

    // If the user made the height of the selection smaller, 
    // use the selection's original height.
    if (e.NewRectangle.Height < selectionBounds.Height)
    {
        resizeHeight = selectionBounds.Height;
    }
    else
    {
        resizeHeight = e.NewRectangle.Height;
    }

    // If the user made the width of the selection smaller, 
    // use the selection's original width.
    if (e.NewRectangle.Width < selectionBounds.Width)
    {
        resizeWidth = selectionBounds.Width;
    }
    else
    {
        resizeWidth = e.NewRectangle.Width;
    }

    // Create a the new rectangle with the appropriate width and height.
    e.NewRectangle = new Rect(e.NewRectangle.X, e.NewRectangle.Y, resizeWidth, resizeHeight);
}

// Keep track of the selection bounds.
void inkCanvas1_SelectionChanged(object sender, EventArgs e)
{
    selectionBounds = inkCanvas1.GetSelectionBounds();
}
Private selectionBounds As Rect

' Don't allow the user to make the selection smaller than its original size.
Private Sub inkCanvas1_SelectionResizing(ByVal sender As Object, ByVal e As InkCanvasSelectionEditingEventArgs)

    If selectionBounds.IsEmpty Then
        Return
    End If

    Dim resizeHeight As Double
    Dim resizeWidth As Double

    ' If the user made the height of the selection smaller, 
    ' use the selection's original height.
    If e.NewRectangle.Height < selectionBounds.Height Then
        resizeHeight = selectionBounds.Height
    Else
        resizeHeight = e.NewRectangle.Height
    End If

    ' If the user made the width of the selection smaller, 
    ' use the selection's original width.
    If e.NewRectangle.Width < selectionBounds.Width Then
        resizeWidth = selectionBounds.Width
    Else
        resizeWidth = e.NewRectangle.Width
    End If

    ' Create a the new rectangle with the appropriate width and height.
    e.NewRectangle = New Rect(e.NewRectangle.X, e.NewRectangle.Y, resizeWidth, resizeHeight)

End Sub


' Keep track of the selection bounds.
Private Sub inkCanvas1_SelectionChanged(ByVal sender As Object, ByVal e As EventArgs)

    selectionBounds = inkCanvas1.GetSelectionBounds()

End Sub

설명

이 이벤트는 사용자가 스트로크 및/또는 요소의 선택 크기를 조정하라는 요청을 한 후 변경 내용이 적용되기 전에 발생합니다.

이벤트 처리기는 및 NewRectangle의 두 속성을 OldRectangle 포함하는 형식 InkCanvasSelectionEditingEventArgs 의 인수를 받습니다. OldRectangle 는 크기 조정 작업 전에 선택 영역의 경계를 정의하고 NewRectangle 크기 조정 작업 후 선택 영역의 경계를 정의합니다.

스트로크 및/또는 요소가 새 크기 SelectionResized 로 업데이트되면 이벤트가 발생합니다.

적용 대상

추가 정보