Прочитать на английском

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


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

Определение

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

C#
see AddDragEnterHandler, and RemoveDragEnterHandler

Примеры

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

C#
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;
            }
        }
    }
}

Комментарии

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

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

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

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

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

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

Продукт Версии
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

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