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,则不会引发此事件。

事件 DragOverGiveFeedback 拖动源上的 事件配对。 在事件处理程序中DragOver,通常检查传输的数据采用放置目标可以处理的格式。 还可以检查是否按下任何修改键,这通常指示用户是想要移动还是复制操作。 执行这些检查后,设置 DragEventArgs.Effects 属性以通知拖动源放置数据将产生的效果。 拖动源在事件参数的 GiveFeedback 属性中Effects接收此信息,并且可以设置适当的游标来向用户提供反馈。

路由事件信息

标识符字段 DragOverEvent
路由策略 鼓 泡
委托 DragEventHandler

相应的隧道事件为 PreviewDragOver

适用于

另请参阅