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