【问题标题】:Drag Drop Within WPF ToolWindow in VS2010 Extension Not Allowed不允许在 VS2010 扩展中的 WPF 工具窗口内拖放
【发布时间】:2010-01-28 21:29:59
【问题描述】:

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

有什么想法吗?安全限制或这些 WPF 控件托管在 ToolWindowPane 和旧的 Visual Studio IDE COM 东西中的影响我猜...感谢您的帮助!

【问题讨论】:

    标签: wpf visual-studio-2010 vsx vsip


    【解决方案1】:

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

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


    亮点,以防链接失效:

    在您的工具窗口(UserControl)中,覆盖OnDragEnterOnDragOver重要!)和OnDrop。未能覆盖OnDragOver 将导致拖放失败。

    OnDragEnter 中,执行以下操作:

    1. 检查您是否可以处理掉落
    2. 如果是这样,请将DragEventArgs.Handled 设置为true 并将DragEventArgs.Effects 设置为适当的值
    3. 致电base.OnDragEnter()

    OnDragOver 中,您必须与OnDragEnter相同的事情。如果您未能设置Handled,Visual Studio 将接管,您将无法处理丢弃!

    OnDrop

    1. 处理下降
    2. DragEventArgs.Handled 设置为true
    3. 致电base.OnDrop()

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      相关资源
      最近更新 更多