Udostępnij za pośrednictwem


DragDrop.DragEnter Zdarzenie dołączone

Definicja

Występuje, gdy obiekt jest przeciągany do granic elementu, który działa jako cel upuszczania.

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

Przykłady

Poniższy przykład przedstawia procedurę DragEnter obsługi zdarzeń dla Ellipse elementu. Ten kod wyświetla podgląd efektów operacji przeciągania i upuszczania przez zapisanie bieżącego Fill pędzla. Następnie sprawdza, czy DataObject przeciągnięty wielokropek zawiera dane ciągu, które można przekonwertować na Brushobiekt . Jeśli tak, Brush element jest stosowany do wielokropka. Zmiana zostanie przywrócona w procedurze obsługi zdarzeń DragLeave . Jeśli nie można przekonwertować danych na element , nie jest wykonywana żadna Brushakcja.

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

Uwagi

To zdarzenie jest wywoływane po każdym przeciągnięciu obiektu do granic elementu, który działa jako cel upuszczania. To zdarzenie nie jest zgłaszane, jeśli właściwość elementu AllowDrop to false.

Obsługa tego zdarzenia jest opcjonalna dla miejsca docelowego upuszczania i nie jest konieczna dla wszystkich scenariuszy przeciągania i upuszczania. To zdarzenie jest zwykle obsługiwane w celu udostępnienia podglądu efektów operacji przeciągania i upuszczania, jeśli jest to odpowiednie dla aplikacji. Nie ustawiaj DragEventArgs.Effects właściwości w DragEnter zdarzeniu, ponieważ zostanie zastąpiona DragOver w zdarzeniu.

Informacje dotyczące kierowanego zdarzenia

Pole identyfikatora DragEnterEvent
Strategia routingu Propagacji
Delegat DragEventHandler

Odpowiednie zdarzenie tunelowania to PreviewDragEnter.

Dotyczy

Zobacz też