語言

DragDrop.DragOver 附加事件

定義

當物體被拖入作為落下目標的元素範圍內時,會持續發生。

see AddDragOverHandler, and RemoveDragOverHandler
see AddDragOverHandler, and RemoveDragOverHandler
see AddDragOverHandler, and RemoveDragOverHandler

範例

以下範例展示了 DragOver 元素 Ellipse 的事件處理器。 此程式碼檢查被拖曳於橢圓上是否 DataObject 包含可轉換為 Brush字串資料的字串資料。 若有,則將屬性設定 DragEventArgs.Effects 為 Copy。 這表示拖曳源資料可以複製到橢圓。 若資料無法轉換為 Brush,屬性 DragEventArgs.Effects 設定為 None。 這表示拖曳源該橢圓不是資料的有效落點。

private void ellipse_DragOver(object sender, DragEventArgs e)
{
    e.Effects = DragDropEffects.None;

    // 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, allow copying.
        BrushConverter converter = new BrushConverter();
        if (converter.IsValid(dataString))
        {
            e.Effects = DragDropEffects.Copy | DragDropEffects.Move;
        }
    }
}
Private Sub Ellipse_DragOver(ByVal sender As System.Object, ByVal e As System.Windows.DragEventArgs)
    e.Effects = DragDropEffects.None

    ' 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
            e.Effects = DragDropEffects.Copy Or DragDropEffects.Move
        End If
    End If
End Sub

備註

當拖曳物體位於作為落下目標的元素範圍內時,此事件會持續被觸發。 若元素 AllowDrop 性質為 false,則不會引發此事件。

該 DragOver 事件與拖曳源上的事件配對 GiveFeedback 。 在事件處理程序 DragOver 中,通常會檢查傳輸的資料格式是否符合丟入目標能處理的格式。 你也可以檢查是否有按任何修飾鍵,這通常代表使用者是打算移動還是複製動作。 完成這些檢查後,你設定 DragEventArgs.Effects 屬性通知拖曳來源丟棄資料會產生什麼效果。 拖曳源會透過事件參數的屬性Effects接收這些資訊GiveFeedback,並能設定適當的游標以向使用者回饋。

路由事件資訊

Item 價值觀
識別碼欄位 DragOverEvent
路由策略 氣泡
代理人 DragEventHandler

對應的隧道事件為 PreviewDragOver。

適用於

另請參閱