从解决方案资源管理器拖动然后放入基于wpf的ToolWindow

时间:2016-07-13 14:12:56

标签: c# wpf drag-and-drop vsix solution-explorer

我正在尝试实现一种功能,该功能可以从解决方案资源管理器中拖放代码文件,当放入我的ToolWindow时,我可以获取文件的路径来处理它。

我将AllowDrop属性添加到我将项目放到的UserControl上,并将其设置为true,但似乎我无法将项目放到ToolWindow上。 (当光标悬停在ToolWindow上时,光标变为黑色圆圈,对角线穿过)

为什么会这样?以及如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我添加了AllowDrop =" true"到xml和 处理事件DragEnter和DragOver。

    private void myListView_DragEnter(object sender, DragEventArgs e)
    {
        myListView.Focus();
        e.Effects = DragDropEffects.Copy;
        Debug.Print("DragOver reached");
    }

    private void myListView_DragOver(object sender, DragEventArgs e)
    {
        e.Effects = DragDropEffects.Copy;
        Debug.Print("DragOver reached");
    }

已达到事件但鼠标光标仍显示圆圈(不允许掉落) 而且我做了一个小改动,我添加了这条线 e.Handled = true; ;) 现在可行。 :)

    private void myListView_DragEnter(object sender, DragEventArgs e)
    {
        e.Effects = DragDropEffects.Copy;
        e.Handled = true;
        Debug.Print("DragOver reached\n");
    }

    private void myListView_DragOver(object sender, DragEventArgs e)
    {
        e.Effects = DragDropEffects.Copy;
        e.Handled = true;
        Debug.Print("DragOver reached\n");
    }