Freigeben über


DragDrop.DragEnter Angefügtes Ereignis

Definition

Tritt auf, wenn ein Objekt in die Begrenzungen eines Elements gezogen wird, das als Drop-Ziel fungiert.

see AddDragEnterHandler, and RemoveDragEnterHandler
see AddDragEnterHandler, and RemoveDragEnterHandler
see AddDragEnterHandler, and RemoveDragEnterHandler

Beispiele

Das folgende Beispiel zeigt den DragEnter-Ereignishandler für ein Ellipse-Element. Dieser Code bewirkt eine Vorschau der Auswirkungen des Drag & Drop-Vorgangs durch Speichern des aktuellen Fill-Pinsels. Anschließend wird überprüft, ob das DataObject über die Ellipse gezogene Zeichenfolgendaten enthält, die in eine Brushkonvertiert werden können. In diesem Fall wird der Brush auf die Ellipse angewendet. Die Änderung wird im DragLeave-Ereignishandler rückgängig gemacht. Wenn die Daten nicht in einen Brush konvertiert werden können, wird keine Aktion ausgeführt.

private Brush _previousFill = null;
private void ellipse_DragEnter(object sender, DragEventArgs e)
{
    Ellipse ellipse = sender as Ellipse;
    if (ellipse != null)
    {
        // Save the current Fill brush so that you can revert back to this value in DragLeave.
        _previousFill = ellipse.Fill;
        
        // If the DataObject contains string data, extract it.
        if (e.Data.GetDataPresent(DataFormats.StringFormat))
        {
            string dataString = (string)e.Data.GetData(DataFormats.StringFormat);

            // If the string can be converted into a Brush, convert it.
            BrushConverter converter = new BrushConverter();
            if (converter.IsValid(dataString))
            {
                Brush newFill = (Brush)converter.ConvertFromString(dataString);
                ellipse.Fill = newFill;
            }
        }
    }
}
Private _previousFill As Brush = Nothing
Private Sub Ellipse_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.DragEventArgs)
    Dim ellipse = TryCast(sender, Ellipse)
    If ellipse IsNot Nothing Then
        ' Save the current Fill brush so that you can revert back to this value in DragLeave.
        _previousFill = ellipse.Fill

        ' If the DataObject contains string data, extract it.
        If e.Data.GetDataPresent(DataFormats.StringFormat) Then
            Dim dataString = e.Data.GetData(DataFormats.StringFormat)

            ' If the string can be converted into a Brush, convert it.
            Dim converter As New BrushConverter()
            If converter.IsValid(dataString) Then
                Dim newFill As Brush = CType(converter.ConvertFromString(dataString), Brush)
                ellipse.Fill = newFill
            End If
        End If
    End If
End Sub

Hinweise

Dieses Ereignis wird einmal ausgelöst, wenn ein Objekt in die Grenzen eines Elements gezogen wird, das als Ablageziel fungiert. Dieses Ereignis wird nicht ausgelöst, wenn die -Eigenschaft des AllowDrop Elements ist false.

Die Behandlung dieses Ereignisses ist für das Ablageziel optional und nicht für alle Drag-and-Drop-Szenarien erforderlich. Normalerweise verarbeiten Sie dieses Ereignis, um eine Vorschau der Auswirkungen des Drag & Drop-Vorgangs bereitzustellen, wenn das in Ihrer Anwendung sinnvoll ist. Legen Sie nicht die DragEventArgs.Effects-Eigenschaft im Ereignis DragEnter fest, da sie im DragOver-Ereignis überschrieben wird.

Informationen zum Routingereignis

Bezeichnerfeld DragEnterEvent
Routingstrategie Bubbling
Delegat DragEventHandler

Das entsprechende Tunnelereignis ist PreviewDragEnter.

Gilt für:

Weitere Informationen