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

Определение

Возникает при перетаскивании объекта в границы элемента, выступающего в качестве конечного расположения сброса.Occurs when an object is dragged into the bounds of an element that is acting as a drop target.

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

Примеры

В следующем примере показан обработчик событий DragEnter для элемента Ellipse.The following example shows the DragEnter event handler for an Ellipse element. Этот код выполняет предварительный просмотр эффектов операции перетаскивания путем сохранения текущей кисти Fill.This code previews the effects of the drag-and-drop operation by saving the current Fill brush. Затем он проверяет, содержит ли перетаскивание DataObject над эллипсом строковые данные, которые можно преобразовать в Brush.It then checks to see if the DataObject being dragged over the ellipse contains string data that can be converted to a Brush. Если это так, то к эллипсу применяется объект Brush.If so, the Brush is applied to the ellipse. Это изменение отменяется в обработчике событий DragLeave.The change is reverted in the DragLeave event handler. Если данные невозможно преобразовать в Brush, никакие действия не выполняются.If the data cannot be converted to a Brush, no action is performed.

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

Комментарии

Это событие возникает каждый раз при перетаскивании объекта в границы элемента, который выступает в качестве цели перетаскивания.This event is raised once each time an object is dragged into the bounds of an element that is acting as a drop target. Это событие не возникает, если свойство AllowDrop элемента имеет значение false.This event is not raised if the element's AllowDrop property is false.

Обработка этого события является необязательной для целевого объекта перетаскивания и не является обязательной для всех сценариев перетаскивания.Handling this event is optional for the drop target, and is not necessary for all drag-and-drop scenarios. Обычно вы обрабатываете это событие, чтобы обеспечить предварительный просмотр эффектов операции перетаскивания, если это требуется для вашего приложения.You typically handle this event to provide a preview of the effects of the drag-and-drop operation, if appropriate for your application. Не устанавливайте свойство DragEventArgs.Effects в событии DragEnter, так как оно будет переопределено в событии DragOver.Do not set the DragEventArgs.Effects property in the DragEnter event, as it will be overwritten in the DragOver event.

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

Поле идентификатораIdentifier field DragEnterEvent
Стратегия маршрутизацииRouting strategy Восходящей маршрутизацииBubbling
делегатDelegate DragEventHandler

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

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

Дополнительно