DragDrop.DragEnter Evento adjunto
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se produce cuando se arrastra un objeto dentro de los límites de un elemento que actúa como un destino para colocar.
see AddDragEnterHandler, and RemoveDragEnterHandler
see AddDragEnterHandler, and RemoveDragEnterHandler
see AddDragEnterHandler, and RemoveDragEnterHandler
Ejemplos
El ejemplo siguiente muestra el controlador de eventos DragEnter para un elemento Ellipse. Este código muestra una vista previa de los efectos de la operación de arrastrar y colocar guardando el pincel Fill actual. A continuación, comprueba si el DataObject elemento que se arrastra sobre la elipse contiene datos de cadena que se pueden convertir en .Brush Si es así, el Brush se aplica a la elipse. El cambio se revierte en el controlador de eventos DragLeave. Si los datos no se pueden convertir en un Brush, no se lleva a cabo ninguna acción.
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
Comentarios
Este evento se genera una vez cada vez que un objeto se arrastra a los límites de un elemento que actúa como destino de colocación. Este evento no se genera si la propiedad del AllowDrop elemento es false
.
Controlar este evento es opcional para el destino de colocación y no es necesario para todos los escenarios de arrastrar y colocar. Normalmente, este evento se controla para que proporcione una vista previa de los efectos de la operación de arrastrar y colocar, si es adecuado para la aplicación. No establezca la propiedad DragEventArgs.Effects en el evento DragEnter, ya que se sobrescribirá en el evento DragOver.
Información sobre eventos enrutados
Campo identificador | DragEnterEvent |
Estrategia de enrutamiento | Burbujeante |
Delegado | DragEventHandler |
El evento de tunelización correspondiente es PreviewDragEnter.