DragDrop.DragOver 附加事件
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在置放目標項目的界限內拖曳物件時持續發生。
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 。