Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 透明文件资源管理器列表_C#_Wpf - Fatal编程技术网

C# 透明文件资源管理器列表

C# 透明文件资源管理器列表,c#,wpf,C#,Wpf,我在WPF中开发了一个自定义文件浏览器,为了模拟实际的文件列表,我使用了一个列表视图、一个可观察集合和一个文件系统观察者作为其核心,并且我能够模拟普通文件浏览器所具有的各种事件,例如使用File.Move()拖放、文件更新(使用FileSystemWatcher)等。目前,它还显示图标和缩略图 然而,经过思考,我恐怕不需要“重新发明”轮子,我一直在寻找如何在我的应用程序中实现“普通”(normal)文件资源管理器列表 然而,我也希望在背景中有透明度,像这样:(显然它也有一些模糊的时间,但是我们忽

我在WPF中开发了一个自定义文件浏览器,为了模拟实际的文件列表,我使用了一个
列表视图
、一个
可观察集合
和一个
文件系统观察者
作为其核心,并且我能够模拟普通文件浏览器所具有的各种事件,例如使用
File.Move()
拖放、文件更新(使用
FileSystemWatcher
)等。目前,它还显示图标和缩略图

然而,经过思考,我恐怕不需要“重新发明”轮子,我一直在寻找如何在我的应用程序中实现“普通”(normal)文件资源管理器列表

然而,我也希望在背景中有透明度,像这样:(显然它也有一些模糊的时间,但是我们忽略它)

我已经通过以下方式(某种程度上)成功地做到了这一点:

1。创建“浏览器”最基本、最快速的方法是:使用
WebBrowser
控件

这在某种程度上是可行的,但是我相信有更好的方法来实现我正在尝试的东西。另外,由于
WebBrowser
控件是
COM组件
周围的WPF包装,因此我无法将Background属性更改为transparent。可能会有一些变通方法,包括更改其不透明度,甚至使用WinForms使用透明背景色和透明键。这导致:

这是可行的,但它是“脏的”(并不是说我不能移动我的表格)

2。a使用Microsoft API代码包

MS API代码包(来自Microsoft)在.NET Core上不起作用。即使是这样(我在.NET Framework上使用过),当我将AllowTransparency设置为true时,
ExplorerBrowser
控件也会完全消失(就像
WebBrowser
一样)。当然,控件上有一个
Background
属性,但它似乎并不影响它

2。b使用在WPF和.NET Core上工作的不同Microsoft API代码包这会导致意外的运行时错误,例如:和(在不同的代码包中):“值不在预期范围内。”异常

3。使用不同的web浏览器:再说一次,我认为这不是实现事情的最佳方式,但我尝试了一下。使用它,我很快发现,尽管它支持透明性,但当我导航到(比如)C:\时,它并不像Windows资源管理器那样显示文件夹:

4。浏览代码项目:我浏览了一些项目,看看它们将如何实现我正在尝试做的事情,但它们要么使用
列表视图
,并完全按照我所做的做(让它显示图标,双击打开文件等),要么因为代码“太”旧而无法工作,要么就是它们无法提供我想要的东西


好吧,我有以下选择:

1。写一个自定义的
ListView
control
我不知道如何编写自定义控件(而且我必须像我说的那样重新发明轮子)。这将是我最后的选择

2。使用其他开发人员发布的自定义控件

**三,。编写一个包装器(可能是?),我不完全确定它是如何工作的)并使用Windows API中的Windows资源管理器Win32控件

4。扩展现有控件以满足我的需要(同样不确定这将如何工作)

在这种情况下,你认为我应该怎么做

非常感谢您的帮助!谢谢