다음을 통해 공유


InkCanvasSelectionHitResult 열거형

정의

InkCanvas에서 선택 표시기(Ardorner)의 여러 부분을 식별합니다.

public enum class InkCanvasSelectionHitResult
public enum InkCanvasSelectionHitResult
type InkCanvasSelectionHitResult = 
Public Enum InkCanvasSelectionHitResult
상속
InkCanvasSelectionHitResult

필드

Bottom 6

선택 표시기의 아래쪽 가운데 핸들입니다.

BottomLeft 7

선택 표시기의 왼쪽 아래 핸들입니다.

BottomRight 5

선택 표시기의 오른쪽 아래 핸들입니다.

Left 8

선택 표시기의 왼쪽 가장자리 가운데 핸들입니다.

None 0

선택 표시기의 어떠한 부분도 아닙니다.

Right 4

선택 표시기의 오른쪽 가장자리 가운데 핸들입니다.

Selection 9

선택 표시기의 경계 내 영역입니다.

Top 2

선택 표시기의 위쪽 가운데 핸들입니다.

TopLeft 1

선택 표시기의 왼쪽 위 핸들입니다.

TopRight 3

선택 표시기의 오른쪽 위 핸들입니다.

예제

다음 예제에서는 사용 하는 방법을 HitTestSelection 만들지 여부를 결정 하는 DataObject 시작 끌어서 놓습니다. 끌어서를 구현 하 여 두 놓을 InkCanvas 개체를 참조 하세요 방법: 끌어서 놓기 잉크합니다.

void InkCanvas_PreviewMouseDown(object sender, MouseEventArgs e)
{
    InkCanvas ic = (InkCanvas)sender;
    
    Point pt = e.GetPosition(ic);

    // If the user is moving selected strokes, prepare the strokes to be
    // moved to another InkCanvas.
    if (ic.HitTestSelection(pt) == 
        InkCanvasSelectionHitResult.Selection)
    {
        StrokeCollection selectedStrokes = ic.GetSelectedStrokes();
        StrokeCollection strokesToMove = selectedStrokes.Clone();
    
        // Remove the offset of the selected strokes so they
        // are positioned when the strokes are dropped.
        Rect inkBounds = strokesToMove.GetBounds();
        TranslateStrokes(strokesToMove, -inkBounds.X, -inkBounds.Y);
        
        // Perform drag and drop.
        MemoryStream ms = new MemoryStream();
        strokesToMove.Save(ms);
        DataObject dataObject = new DataObject(
            StrokeCollection.InkSerializedFormat, ms);
        
        DragDropEffects effects = 
            DragDrop.DoDragDrop(ic, dataObject, 
                                DragDropEffects.Move);

        if ((effects & DragDropEffects.Move) == 
             DragDropEffects.Move)
        {
            // Remove the selected strokes 
            // from the current InkCanvas.
            ic.Strokes.Remove(selectedStrokes);
        }
    }
}
Private Sub InkCanvas_PreviewMouseDown(ByVal sender As Object, _
                               ByVal e As MouseButtonEventArgs)

    Dim ic As InkCanvas = CType(sender, InkCanvas)

    Dim pt As Point = e.GetPosition(ic)

    ' If the user is moving selected strokes, prepare the strokes to be
    ' moved to another InkCanvas.
    If ic.HitTestSelection(pt) = InkCanvasSelectionHitResult.Selection Then

        Dim selectedStrokes As StrokeCollection = _
                               ic.GetSelectedStrokes()

        Dim strokesToMove As StrokeCollection = _
                             selectedStrokes.Clone()

        ' Remove the offset of the selected strokes so they
        ' are positioned when the strokes are dropped.
        Dim inkBounds As Rect = strokesToMove.GetBounds()
        TranslateStrokes(strokesToMove, -inkBounds.X, -inkBounds.Y)

        ' Perform drag and drop.
        Dim ms As New MemoryStream()
        strokesToMove.Save(ms)

        Dim dataObject As New DataObject _
            (StrokeCollection.InkSerializedFormat, ms)

        Dim effects As DragDropEffects = _
            DragDrop.DoDragDrop(ic, dataObject, DragDropEffects.Move)

        If (effects And DragDropEffects.Move) = DragDropEffects.Move Then

            ' Remove the selected strokes from the current InkCanvas.
            ic.Strokes.Remove(selectedStrokes)
        End If
    End If

End Sub

설명

HitTestSelection 메서드가 반환 되는 InkCanvasSelectionHitResult 선택 부분 표시기 교차 하거나이 점을 둘러싸는 나타내려면를 Point. 끌어서 놓기 작업을 수행 하는 경우에 유용 합니다.

XAML 텍스트 사용

이 클래스는 XAML에서 일반적으로 사용 되지 않습니다.

적용 대상