我有一个 16x16 .png 文件,我已将其作为 ImageSource (BitmapSource) 加载,当我在 tabcontrol 标头中的 Image 上使用它时它工作正常。
我现在想在用户拖动文档选项卡时在浮动窗口(继承自 WPF Window 类)中使用相同的图像。(这是 AvalonDock,我对其进行了调整以允许标签页眉中的图像)
在网络上进行多次搜索后,我了解到 Window.Icon 需要 BitmapFrame 但所有示例代码似乎都假设 .ico 文件可用,但在我的情况下它不是。
我尝试了以下代码(以及包括克隆、冻结等在内的变体):
var image = (Image) content.Icon;
var bitmapSource = (BitmapSource) image.Source;
Icon = BitmapFrame.Create(bitmapSource);
但是当调用 Show() 方法时,会抛出异常:“抛出了 'System.ExecutionEngineException' 类型的异常。”
如何动态创建兼容的位图以允许窗口显示图标?