C# 透明文件资源管理器列表
我在WPF中开发了一个自定义文件浏览器,为了模拟实际的文件列表,我使用了一个C# 透明文件资源管理器列表,c#,wpf,C#,Wpf,我在WPF中开发了一个自定义文件浏览器,为了模拟实际的文件列表,我使用了一个列表视图、一个可观察集合和一个文件系统观察者作为其核心,并且我能够模拟普通文件浏览器所具有的各种事件,例如使用File.Move()拖放、文件更新(使用FileSystemWatcher)等。目前,它还显示图标和缩略图 然而,经过思考,我恐怕不需要“重新发明”轮子,我一直在寻找如何在我的应用程序中实现“普通”(normal)文件资源管理器列表 然而,我也希望在背景中有透明度,像这样:(显然它也有一些模糊的时间,但是我们忽
列表视图
、一个可观察集合
和一个文件系统观察者
作为其核心,并且我能够模拟普通文件浏览器所具有的各种事件,例如使用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。扩展现有控件以满足我的需要(同样不确定这将如何工作)
在这种情况下,你认为我应该怎么做
非常感谢您的帮助!谢谢