Поделиться через


DragDrop.DragEnter Присоединенное событие

Определение

Возникает при перетаскивании объекта в границы элемента, выступающего в качестве конечного расположения сброса.

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

Примеры

В следующем примере показан обработчик событий DragEnter для элемента Ellipse. Этот код выполняет предварительный просмотр эффектов операции перетаскивания путем сохранения текущей кисти Fill. Затем он проверяет, содержит ли DataObject перетаскиваемый по эллипсу строковые данные, которые можно преобразовать в Brush. Если это так, то к эллипсу применяется объект Brush. Это изменение отменяется в обработчике событий DragLeave. Если данные невозможно преобразовать в Brush, никакие действия не выполняются.

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

Комментарии

Это событие возникает один раз при каждом перетаскивании объекта в границы элемента, выступающего в качестве целевого объекта перетаскивания. Это событие не возникает, если свойство элемента AllowDrop имеет значение false.

Обработка этого события необязательна для целевого объекта перетаскивания и не требуется для всех сценариев перетаскивания. Обычно вы обрабатываете это событие, чтобы обеспечить предварительный просмотр эффектов операции перетаскивания, если это требуется для вашего приложения. Не устанавливайте свойство DragEventArgs.Effects в событии DragEnter, так как оно будет переопределено в событии DragOver.

Сведения о маршрутизируемом событии

Поле идентификатора DragEnterEvent
Стратегия маршрутизации Восходящей
Делегат DragEventHandler

Соответствующее событие туннелирования — PreviewDragEnter.

Применяется к

См. также раздел