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


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

Определение

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

see AddDropHandler, and RemoveDropHandler
see AddDropHandler, and RemoveDropHandler
see AddDropHandler, and RemoveDropHandler

Примеры

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

private void ellipse_Drop(object sender, DragEventArgs e)
{
    Ellipse ellipse = sender as Ellipse;
    if (ellipse != null)
    {
        // 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 and apply it to the ellipse.
            BrushConverter converter = new BrushConverter();
            if (converter.IsValid(dataString))
            {
                Brush newFill = (Brush)converter.ConvertFromString(dataString);
                ellipse.Fill = newFill;
            }
        }
    }
}
Private Sub Ellipse_Drop(ByVal sender As System.Object, ByVal e As System.Windows.DragEventArgs)
    Dim ellipse = TryCast(sender, Ellipse)
    If ellipse IsNot Nothing Then

        ' 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

Комментарии

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

В обработчике Drop событий извлекаются переданные данные из DataObject и выполняется любая обработка данных, необходимых приложению. Чтобы уведомить источник перетаскивания о эффекте перетаскивания, например о копировании или перемещении DragEventArgs.Effects , задайте свойство в обработчике Drop событий. Значение этого свойства является возвращаемым значением DoDragDrop метода, который инициировал операцию перетаскивания. Если возвращаемое значение не соответствует одному из указанных allowedEffects в вызове DoDragDrop, операция перетаскивания не выполняется. Начальное значение DragEventArgs.Effects свойства совпадает с allowedEffects указанным в вызове DoDragDrop метода . Если свойство не задано DragEventArgs.Effects , возвращается это начальное значение, и предполагается, что произошло одно allowedEffects значение .

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

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

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

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

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