C#:在WPF中拖放(Richtextbox)

时间:2010-12-11 19:25:00

标签: wpf drag-and-drop richtextbox

我想在WPF中实现拖放机制,但它不起作用...... 使用Windows-Forms工作,......

首先我将AllowDrop设置为True。在Windows窗体中,您可以将项目拖动到richtextbox中,并且光标会更改。

使用WPF ......没有任何反应。

nexT点:实现DragEnter和DragDrop方法。 我这样做就像在线手册所说的那样。 (好吧,我不得不尝试更多的东西,因为WPF中不存在DragDrop) 我认为拖放的所有教程仅适用于Windowsforms,WPF的所有内容......

richtextbox有问题吗?如果我将其更改为“allowDrop” - 没有任何反应。光标仍然是一个不允许的符号。

希望有人可以提供帮助:)

我阅读的教程中的示例代码:

richTextBox1.AllowDrop = true;

void richTextBox1_DragEnter(object sender, DragEventArgs e)
{
    e.Effect = DragDropEffects.None;

    if (e.Data.GetDataPresent(DataFormats.XXX))
    {
        e.Effect = DragDropEffects.Copy;
    }
}

void richTextBox1_DragDrop(object sender, DragEventArgs e)
{
    //intert in richtextbox ...
    richTextBox1.methodeXY();
}

1 个答案:

答案 0 :(得分:7)

我很好奇为什么所以我有一点玩,最终让它上班。基本上,我开始绑定到PreviewXXX事件,如下所示:

AllowDrop="True" PreviewDragEnter="RichTextBox_DragEnter" PreviewDragOver="RichTextBox_DragEnter" PreviewDrop="RichTextBox_Drop"

即使如此,他们仍然没有工作。但答案来自here,以提升权限的形式出现。我通常使用管理员提升来运行VS2010。因为我将一些文件从资源管理器中删除到我的RichTextBox,所以它基本上禁止操作,因为资源管理器以非提升用户模式运行。以非提升模式运行VS2010可解决问题。链接的文章确实提出了一些解决方法,但我还没有尝试过。