Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

DragDrop.DragEnter Angefügtes Ereignis

 

Veröffentlicht: Oktober 2016

Tritt auf, wenn ein Objekt in die Begrenzungen eines Elements gezogen wird, das als Drop-Ziel fungiert.

Namespace:   System.Windows
Assembly:  PresentationCore (in PresentationCore.dll)

See AddDragEnterHandler, RemoveDragEnterHandler

This event is raised once each time an object is dragged into the bounds of an element that is acting as a drop target. This event is not raised if the element’s P:System.Windows.UIElement.AllowDrop property is false.

Handling this event is optional for the drop target, and is not necessary for all drag-and-drop scenarios. You typically handle this event to provide a preview of the effects of the drag-and-drop operation, if appropriate for your application. Do not set the P:System.Windows.DragEventArgs.Effects property in the E:System.Windows.DragDrop.DragEnter event, as it will be overwritten in the E:System.Windows.DragDrop.DragOver event.

Identifier field

DragEnterEvent

Routing strategy

Bubbling

Delegate

DragEventHandler

The corresponding tunneling event is E:System.Windows.DragDrop.PreviewDragEnter.

The following example shows the E:System.Windows.DragDrop.DragEnter event handler for an T:System.Windows.Shapes.Ellipse element. This code previews the effects of the drag-and-drop operation by saving the current P:System.Windows.Shapes.Shape.Fill brush. It then checks to see if the T:System.Windows.DataObject being dragged over the ellipse contains string data that can be converted to a T:System.Windows.Media.Brush. If so, the T:System.Windows.Media.Brush is applied to the ellipse. The change is reverted in the E:System.Windows.DragDrop.DragLeave event handler. If the data cannot be converted to a T:System.Windows.Media.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;
            }
        }
    }
}
Zurück zum Anfang
Anzeigen: