从解决方案资源管理器拖放到基于 WPF 的工具窗口中

本文关键字:WPF 工具 窗口 解决方案 资源管理器 拖放 | 更新日期: 2023-09-27 17:56:51

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

我将 AllowDrop 属性添加到要放置项目的用户控件,并将其设置为 true,但似乎我无法将项目拖放到工具窗口中。(当光标悬停在工具窗口上时,光标将变为对角线交叉的黑色圆圈)

为什么会这样?这个问题怎么能解决呢?

从解决方案资源管理器拖放到基于 WPF 的工具窗口中

我遇到了同样的问题。我将 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.已处理 = 真;;)现在它起作用了。:)

    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");
    }