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 屬性,以通知拖曳來源有關置放資料的效果。 拖曳來源會在事件引數的 GiveFeedback 屬性中 Effects 接收這項資訊,而且可以設定適當的資料指標來提供意見反應給使用者。

路由事件資訊

識別碼欄位 DragOverEvent
路由策略 鼓 泡
代理人 DragEventHandler

對應的通道事件為 PreviewDragOver

適用於

另請參閱