DragDrop.DragEnter Zdarzenie dołączone
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.