InkCanvasSelectionHitResult Enumerazione

Definizione

Identifica le varie parti di uno strumento decorativo di selezione su un InkCanvas.

public enum class InkCanvasSelectionHitResult
public enum InkCanvasSelectionHitResult
type InkCanvasSelectionHitResult = 
Public Enum InkCanvasSelectionHitResult
Ereditarietà
InkCanvasSelectionHitResult

Campi

Nome Valore Descrizione
None 0

Nessuna parte dello strumento decorativo della selezione.

TopLeft 1

Handle superiore sinistro dello strumento decorativo di selezione.

Top 2

Handle centrale superiore dello strumento decorativo di selezione.

TopRight 3

Handle superiore destro dello strumento decorativo di selezione.

Right 4

Handle centrale sul bordo destro dello strumento decorativo di selezione.

BottomRight 5

Handle inferiore destro dello strumento decorativo di selezione.

Bottom 6

Handle centrale inferiore dello strumento decorativo di selezione.

BottomLeft 7

Handle inferiore sinistro dello strumento decorativo di selezione.

Left 8

Handle centrale sul bordo sinistro dello strumento decorativo di selezione.

Selection 9

Area all'interno dei limiti dello strumento decorativo di selezione.

Esempio

Nell'esempio seguente viene illustrato come usare HitTestSelection per determinare se creare un DataObject oggetto per avviare il trascinamento della selezione. Per implementare il trascinamento della selezione tra due InkCanvas oggetti, vedere Procedura: Trascinare e rilasciare input penna.

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

Commenti

Il HitTestSelection metodo restituisce un oggetto InkCanvasSelectionHitResult per indicare quale parte dello strumento decorativo della selezione interseca o circonda un oggetto Point. Ciò è utile quando si eseguono operazioni di trascinamento della selezione.

Utilizzo del testo XAML

Questa classe non viene in genere usata in XAML.

Si applica a