WPF将文本文件拖放到应用程序中

时间:2018-10-03 06:54:47

标签: c# wpf

我正在尝试将文本文件拖到我的C#WPF应用程序中以捕获文件位置。 到目前为止,我尝试过的事情如下:

  1. 将AllowDrop属性设置为true
  2. 添加DragEnter,DragOver和Drop事件-没有一个触发-所有我得到的 是一个黑色的圆圈,上面有一条线,我认为这是不可用的。
  3. 在应用清单中添加了以下内容 level =“ requireAdministrator” uiAccess =“ false” />

我已经使用OpenFileDialog方法作为替代方法,但是同时拥有这两个选项会很高兴。

1 个答案:

答案 0 :(得分:0)

您可以处理PreviewDragOverDrop事件。下面是一个WPF TextBox的示例,您可以在其中从文件资源管理器中删除文件。第一个放置的文件的路径将显示在TextBox中。

private void TextBox_Drop(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        string[] files = e.Data.GetData(DataFormats.FileDrop) as string[];
        if (files != null && files.Length > 0)
        {
            ((TextBox)sender).Text = files[0];
        }
    }
}

private void TextBox_PreviewDragOver(object sender, DragEventArgs e)
{
    e.Handled = true;
}

XAML:

<TextBox AllowDrop="True" PreviewDragOver="TextBox_PreviewDragOver" Drop="TextBox_Drop" />