DragDrop.DragEnter Attached Event

Definition

Ocorre quando um objeto é arrastado para dentro dos limites de um elemento que está atuando como uma reprodução automática.Occurs when an object is dragged into the bounds of an element that is acting as a drop target.

see AddDragEnterHandler, and RemoveDragEnterHandler
see AddDragEnterHandler, and RemoveDragEnterHandler
see AddDragEnterHandler, and RemoveDragEnterHandler

Examples

O exemplo a seguir mostra o manipulador de eventos DragEnter para um elemento Ellipse.The following example shows the DragEnter event handler for an Ellipse element. Esse código visualiza os efeitos da operação de arrastar e soltar salvando o pincel de Fill atual.This code previews the effects of the drag-and-drop operation by saving the current Fill brush. Em seguida, ele verifica se o DataObject que está sendo arrastado sobre a elipse contém dados de cadeia de caracteres que podem ser convertidos em um Brush.It then checks to see if the DataObject being dragged over the ellipse contains string data that can be converted to a Brush. Nesse caso, o Brush é aplicado à elipse.If so, the Brush is applied to the ellipse. A alteração é revertida no manipulador de eventos DragLeave.The change is reverted in the DragLeave event handler. Se os dados não puderem ser convertidos em um Brush, nenhuma ação será executada.If the data cannot be converted to a Brush, no action is performed.

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

Remarks

Esse evento é gerado uma vez a cada vez que um objeto é arrastado para os limites de um elemento que está agindo como um destino de soltar.This event is raised once each time an object is dragged into the bounds of an element that is acting as a drop target. Esse evento não será gerado se a propriedade de AllowDrop do elemento for false.This event is not raised if the element's AllowDrop property is false.

Manipular esse evento é opcional para o destino de soltura e não é necessário para todos os cenários de arrastar e soltar.Handling this event is optional for the drop target, and is not necessary for all drag-and-drop scenarios. Normalmente, esse evento é manipulado para fornecer uma visualização dos efeitos da operação do tipo "arrastar e soltar", se apropriado para o aplicativo.You typically handle this event to provide a preview of the effects of the drag-and-drop operation, if appropriate for your application. Não defina a propriedade DragEventArgs.Effects no evento DragEnter, pois ela será substituída no evento DragOver.Do not set the DragEventArgs.Effects property in the DragEnter event, as it will be overwritten in the DragOver event.

Informações Sobre Eventos RoteadosRouted Event Information

Campo de identificadorIdentifier field DragEnterEvent
Estratégia de roteamentoRouting strategy PropagaçãoBubbling
DelegadoDelegate DragEventHandler

O evento de encapsulamento correspondente é PreviewDragEnter.The corresponding tunneling event is PreviewDragEnter.

Applies to

See also