我有一个IntPtr,它是在非托管/托管边界上进行封送的图标句柄。通过FromHandle()方法将其转换为Icon很容易,而且直到最近这还是令人满意的。
基本上,现在我的线程出现了足够奇怪的情况,以至于我一直在玩MTA / STA舞蹈,以避免托管的WinForm破坏应用程序的主要(WPF友好)UI,但过于脆弱难以继续使用WinForm。
那么,如何获取Icon的ImageSource版本?
请注意,我已经尝试过ImageSourceConverter,但无法成功。
另外,我可以获取一些(但不是全部)涉及到的图标的底层资源,它们通常存在于我的应用程序程序集之外(实际上,它们经常存在于非托管dll中)。
System.Drawing
引入到 WPF 中... 如果你是一个 WPF 纯粹主义者,这是不可接受的。 - AndyCreateBitmapSourceFromHIcon
位于System.Windows.Interop
命名空间中,因此请确保添加您的 Using 或 Import 语句。 - FütemireSystem.Drawing.Icon
了。 - radj307System.Drawing.Icon
。因此根本没有理由使用System.Drawing
。看看*@Justin Davis*的答案。那是正确的方法。 - AndyFromHandle
*方法,我理解为System.Drawing.Icon.FromHandle(IntPtr)
; 尽管我同意你提到的答案是一个更好的方法,并且如果我在原始评论中表现得粗鲁,我向你道歉。 - radj307