我有一个IntPtr封装在一个非托管/管理边界上,对应一个Icon Handle.通过FromHandle()方法将它转换为Icon是微不足道的,直到最近才令人满意.
基本上,我已经有足够的线程怪异了,因为我一直在玩MTA/STA舞蹈以保持托管的WinForm不会破坏应用程序的主要(WPF-tastic)UI太脆弱而无法坚持.所以WinForm必须要去.
那么,我怎样才能获得Icon的ImageSource版本?
注意,我尝试过ImageSourceConverter无济于事.
顺便说一下,我可以获得一些但不是所有涉及的图标的底层资源,它们通常存在于我的应用程序的程序集之外(事实上,它们通常存在于非托管的dll中).
是否可以从文件扩展名中提取相关图标?
我找到了很多例子,但他们都需要一个文件(路径)的引用.我希望能够只传递像"pdf"或".pdf"这样的扩展名,然后从中获取相关的图标(小,中,大,超大和巨型).
我在数据库中有一些数据,其中包含有关文件的信息.文件名和扩展名是我需要解决的问题.
在我的UI中,我希望能够显示数据库中所有文件的列表视图.我想用文件类型的文件名+图标来显示它.
在我的用户界面中,我还有一个缩放器,因此我可以使图标变大或变小,就像在Windows资源管理器中看到的那样(中图标,大图标等).为了做到这一点,我想得到我的操作系统用来在Windows资源管理器中显示该文件的相关图标.我可以在listview中使用此图标.
我找到了可以获取相关图标的解决方案,但是他们都需要使用文件路径来从中提取图标.例如:使用SHFILEINFO获取文件图标
我想要的是能够传递扩展而不是文件路径.
我需要获取文件类型doc或txt的图标
它的大小应该是128*128,并保存为高质量的png或ico文件.
我用了
Icon ico = Icon.ExtractAssociatedIcon(@"d:\\1.txt");
pictureBox1.Image = ico.ToBitmap();
Run Code Online (Sandbox Code Playgroud)
并保存pictureBox1中的图像,但该大小为32*32.
我真的想要128*128的尺寸.
我怎样才能做到这一点?