DragDrop.DragOver Присоединенное событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возникает постоянно при перетаскивании объекта в границах элемента, выступающего в качестве цели перетаскивания.
see AddDragOverHandler, and RemoveDragOverHandler
see AddDragOverHandler, and RemoveDragOverHandler
see AddDragOverHandler, and RemoveDragOverHandler
Примеры
В следующем примере показан обработчик событий DragOver для элемента Ellipse. В этом коде проверяется, содержит ли объект DataObject, перетаскиваемый над эллипсом, строковые данные, которые можно преобразовать в Brush. Если содержит, то код устанавливает для свойства DragEventArgs.Effects значение Copy. Это указывает источнику перетаскивания, что данные можно скопировать в эллипс. Если данные невозможно преобразовать в Brush, для свойства DragEventArgs.Effects устанавливается значение None. Это указывает источнику перетаскивания, что эллипс не является допустимым конечным расположением сброса для данных.
private void ellipse_DragOver(object sender, DragEventArgs e)
{
e.Effects = DragDropEffects.None;
// 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, allow copying.
BrushConverter converter = new BrushConverter();
if (converter.IsValid(dataString))
{
e.Effects = DragDropEffects.Copy | DragDropEffects.Move;
}
}
}
Private Sub Ellipse_DragOver(ByVal sender As System.Object, ByVal e As System.Windows.DragEventArgs)
e.Effects = DragDropEffects.None
' 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
e.Effects = DragDropEffects.Copy Or DragDropEffects.Move
End If
End If
End Sub
Комментарии
Это событие возникает непрерывно, когда перетаскиваемый объект находится в пределах элемента, выступающего в качестве целевого объекта перетаскивания. Это событие не возникает, если свойство элемента AllowDrop имеет значение false
.
Событие DragOver связано с событием GiveFeedback в источнике перетаскивания. В обработчике DragOver событий обычно проверка, что передаваемые данные в формате, который может обработать целевой объект удаления. Вы также можете проверка, нажаты ли какие-либо клавиши-модификаторы, что обычно указывает, намерен ли пользователь переместить или скопировать действие. После выполнения этих проверок вы устанавливаете свойство DragEventArgs.Effects, чтобы уведомить источник перетаскивания о том, какой эффект окажет сброс данных. Источник перетаскивания получает эти сведения в свойстве EffectsGiveFeedback аргументов события и может задать соответствующий курсор для отправки отзывов пользователю.
Сведения о маршрутизируемом событии
Поле идентификатора | DragOverEvent |
Стратегия маршрутизации | Восходящей |
Делегат | DragEventHandler |
Соответствующее событие туннелирования — PreviewDragOver.