gpt4 book ai didi

wpf - 不允许在 VS2010 扩展中的 WPF 工具窗口中拖放

转载 作者:行者123 更新时间:2023-12-05 00:42:21 28 4
gpt4 key购买 nike

我这里有一个奇怪的问题。我已经使用向导为带有工具窗口的 Visual Studio 集成包/VSIX 项目创建了一个简单的插件。在那个窗口中,我想从列表框中做一个简单的拖/放,然后放到同一个窗口中。我在普通的 WPF 程序中做了同样的事情,但是当我在 WS 工具窗口中这样做时,这是不允许的。我开始拖放操作(由 PreviewMouseLeftButtonDown 事件启动)并调用 DragDrop.DoDragDrop()方法,我立即得到停止标志光标。不允许拖拽。

有任何想法吗?安全限制或这些 WPF 控件托管在 ToolWindowPane 和旧的 Visual Studio IDE COM 内容中这一事实的影响,我猜...感谢您的帮助!

最佳答案

微软的 Alin Constantin 在这里帮助了我,甚至写了一篇关于如何在 VS2010 中正确拖放的博客文章!

http://alinconstantin.blogspot.com/2010/02/drag-and-drop-in-visual-studio-2010.html

亮点,在链接腐烂的情况下:

在您的工具窗口(用户控件)中,覆盖 OnDragEnter , OnDragOver (重要!)和 OnDrop .无法覆盖 OnDragOver将导致拖/放失败。

OnDragEnter , 请执行下列操作:

  • 检查您是否可以处理掉落
  • 如果是这样,设置 DragEventArgs.HandledtrueDragEventArgs.Effects到适当的值
  • 调用 base.OnDragEnter()

  • OnDragOver ,你必须做 同样的事情OnDragEnter .如果设置失败 Handled ,Visual Studio 将接管,您将无法处理掉落!

    OnDrop ,
  • 处理掉落
  • 套装DragEventArgs.Handledtrue
  • 调用 base.OnDrop()

  • 请记住,不处理 OnDragOver将导致 Visual Studio 接管拖动操作,使您无法在 OnDrop 中处理它.

    关于wpf - 不允许在 VS2010 扩展中的 WPF 工具窗口中拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2158116/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com