Condividi tramite


InkCanvasSelectionHitResult Enumerazione

Definizione

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

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

Campi

Bottom 6

Il punto di controllo in basso al centro dello strumento decorativo visuale di selezione.

BottomLeft 7

Il punto di controllo in basso a sinistra dello strumento decorativo visuale di selezione.

BottomRight 5

Il punto di controllo in basso a destra dello strumento decorativo visuale di selezione.

Left 8

Il punto di controllo al centro del bordo sinistro dello strumento decorativo visuale di selezione.

None 0

Nessuna parte dello strumento decorativo visuale di selezione.

Right 4

Il punto di controllo al centro del bordo destro dello strumento decorativo visuale di selezione.

Selection 9

L'area entro i limiti dello strumento decorativo visuale di selezione.

Top 2

Il punto di controllo al centro in alto dello strumento decorativo visuale di selezione.

TopLeft 1

Il punto di controllo in alto a sinistra dello strumento decorativo visuale di selezione.

TopRight 3

Il punto di controllo in alto a destra dello strumento decorativo visuale di selezione.

Esempio

Nell'esempio seguente viene illustrato come usare HitTestSelection per determinare se creare un DataObject oggetto per avviare il trascinamento e l'eliminazione. Per implementare il trascinamento e l'eliminazione tra due InkCanvas oggetti, vedere Procedura: Trascinare e rilasciare l'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 InkCanvasSelectionHitResult oggetto per indicare quale parte della selezione si interseca o circonda un Pointoggetto . Questa operazione è utile durante l'esecuzione di operazioni di trascinamento e rilascio.

Utilizzo del testo XAML

Questa classe non viene in genere usata in XAML.

Si applica a