DragDrop.DragEnter DragDrop.DragEnter DragDrop.DragEnter Attached Event

定義

オブジェクトがドロップ ターゲットの役目を果たす要素の境界内にドラッグされたときに発生します。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

次の例は、Ellipse 要素の DragEnter イベント ハンドラーを示しています。The following example shows the DragEnter event handler for an Ellipse element. このコードでは、現在の Fill ブラシを保存して、ドラッグ アンド ドロップ操作の効果をプレビューします。This code previews the effects of the drag-and-drop operation by saving the current Fill brush. これは、後かどうかをチェック、DataObjectに変換できる文字列データが含まれています、楕円の上にドラッグされている、Brushします。It then checks to see if the DataObject being dragged over the ellipse contains string data that can be converted to a Brush. 含まれている場合は、 Brush は楕円に適用されます。If so, the Brush is applied to the ellipse. 変更は DragLeave イベント ハンドラーで元に戻ります。The change is reverted in the DragLeave event handler. データが Brush に変換できない場合、アクションは実行されません。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

注釈

このイベントには、オブジェクトがドロップ先として機能する要素の境界内にドラッグされるたびに 1 回は発生します。This event is raised once each time an object is dragged into the bounds of an element that is acting as a drop target. 場合、このイベントは発生しませんが、要素のAllowDropプロパティはfalseします。This event is not raised if the element's 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. DragEventArgs.Effects イベントで DragEnter プロパティを設定しないでください。このプロパティは DragOver イベントで上書きされるためです。Do not set the DragEventArgs.Effects property in the DragEnter event, as it will be overwritten in the DragOver event.

ルーティングされたイベント情報Routed Event Information

識別子フィールドです。Identifier field DragEnterEvent
ルーティング方法Routing strategy バブルBubbling
DelegateDelegate DragEventHandler

対応するトンネル イベントはPreviewDragEnterします。The corresponding tunneling event is PreviewDragEnter.

適用対象

こちらもご覧ください