-2

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

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

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

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

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

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

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

1)

我已经尝试寻找很多不同的地方来获取从文件中提取图标所需的代码,但它们看起来与桌面上的图标不同。我试过了:这个这个还有一些我现在不记得的。

注意这一步会很容易我对其他功能更感兴趣

2)

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

3)

我不知道如何实现这个功能。

4)

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

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

4

1 回答 1

0

您想要的是重用 Windows 中的控件,并且可以从 .NET 中通过Windows API 代码包访问这些控件

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

于 2011-10-27T07:01:18.653 回答