我有一个IntPtr封装在一个非托管/管理边界上,对应一个Icon Handle.通过FromHandle()方法将它转换为Icon是微不足道的,直到最近才令人满意.
基本上,我已经有足够的线程怪异了,因为我一直在玩MTA/STA舞蹈以保持托管的WinForm不会破坏应用程序的主要(WPF-tastic)UI太脆弱而无法坚持.所以WinForm必须要去.
那么,我怎样才能获得Icon的ImageSource版本?
注意,我尝试过ImageSourceConverter无济于事.
顺便说一下,我可以获得一些但不是所有涉及的图标的底层资源,它们通常存在于我的应用程序的程序集之外(事实上,它们通常存在于非托管的dll中).
如果我有一个多分辨率图标文件(.ico),我怎样才能确保WPF选择合适的图标?设置Image的宽度和高度是否会强制它,或者WPF是否只调整ico文件中的第一个图标?
这就是我目前正在使用的(它有效,但我想避免调整大小,如果这是正在发生的事情).
<MenuItem.Icon>
<Image Source="MyIcons.ico" Width="16" Height="16" />
</MenuItem.Icon>
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我想在Xaml中声明这一点,而无需为其编写代码.