【问题标题】:simulate file dialog模拟文件对话框
【发布时间】:2011-10-27 01:40:33
【问题描述】:

我需要在我的应用程序中添加一个用户可以放置文件的位置,并且它们看起来就像您将文件拖到 Windows 上的文件夹中一样。 here 中有一个程序具有我需要的功能,但它是使用 Windows 窗体编写的,我正在使用 wpf。所以 porgram 很棒,因为它具有我需要的功能。让我列出功能:

1) 我可以获得与桌面上完全相同的图标。

2) 我可以将文件夹和文件拖到外面。注意我如何在图片上拖动我的库文件夹

3) 当我右键单击一个文件时,我会得到与在 Windows 上相同的上下文菜单

4) 我可以将文件和文件夹拖入。

请注意,示例文件对话框窗口是使用 windows 窗体创建的,可以在我提供的第一个链接上下载源代码。

我不想创建文件对话框,否则我将使用 openFileDialog 类。我需要在我的 wpf 应用程序中嵌入一个边框,用户可以在其中拖动和选择文件。他们还可以将文件拖到外面并从那里打开文件。

所以这是我需要添加到我的 wpf 应用程序的 4 件事,让我描述一下我为尝试解决每种方法所做的事情。

1)

我已经尝试寻找很多不同的地方来获取从文件中提取图标所需的代码,但它们看起来与桌面上的图标完全不同。我试过了:thisthis one also 以及其他一些我现在不记得的东西。

注意这一步会很简单,我对其他功能更感兴趣

2)

这可能是最难的。我还没有实现这个,但我一直在想,为了实现这个功能,我必须有另一个窗口。该窗口将包含一个 Image 里面。每当我在图标上拖动鼠标时,我都会实例化这个窗口,将我拖动的图像作为参数传递,它会在 onMouseUP 上关闭。我不知道如何跟踪我让鼠标离开的窗口,所以我不确定是否应该尝试实现这种技术

3)

我不知道如何实现此功能。

4)

这很容易。唯一困难的部分是,有时您可能会从单独的磁盘(例如拇指驱动器)拖动文件,并且您必须有一种方法才能复制它。或者您可以从 Windows 开始菜单中拖动一个链接。

也许我可以使用对话框的功能。我觉得我不必重新发明轮子。我对 Windows 窗体了解不多,所以我很难在 wpf 上实现该代码。

【问题讨论】:

  • SO 的模型是一个问题和一个公认的答案(理想情况下应该完全回答问题)。请把这个分开:)
  • 这个问题太多了。屏幕截图显然来自文件对话框。但是一种使用资源模板切割。

标签: c# wpf filedialog


【解决方案1】:

您想要的是重用 Windows 中的控件,而 .NET 可以通过 Windows API Code Pack 访问这些控件

查看代码包的 Windows Shell 部分,特别是 Explorer Browser 控件,它应该为您提供所需的所有功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 2017-03-27
    • 1970-01-01
    相关资源
    最近更新 更多