我被难住了。 我正在尝试显示嵌入在另一个程序集中的图像。 我已经尝试了几件事,但到目前为止没有任何效果。 我确信我错过了一些非常简单的东西。
目前,Xaml 看起来像这样:
<Image>
<Image.Source>
<BitmapImage UriSource="pack://application:,,,/Name.Of.Assembly;component/Resources/Icons/icon.png" />
</Image.Source>
</Image>
我最初有看起来像这样的 Xaml:
<Image Source="pack://application:,,,/Name.Of.Assembly;component/Resources/Icons/icon.png" />
我切换了它,希望它能有所作为。 (它没有。
我在尝试创建图像的项目中引用了Name.Of.Assembly
。 在程序集中,Name.Of.Assembly
,有一个名为 Resources,该目录具有一个名为 Icons 的子文件夹,其中包含图像图标.png。 图标上的生成操作.png设置为"嵌入的资源"。
当我尝试跑步时,我得到一个XamlParseException
:
'Initialization of 'System.Windows.Media.Imaging.BitmapImage' threw an exception'
其内部例外是:
'Cannot locate resource 'resources/icons/icon.png'
就像它没有在程序集中查找资源一样。 为什么无法加载图像? 我错过了什么?
我找到了解决问题的方法:
第一个问题可能是将我的构建操作设置为 Embedded Resource
而不是 Resource
. 更改此设置后,我对包含资源的项目运行了Build
,但我没有注意到任何不同。
根据肖恩·尼尔森的建议,我做了一个Clean
,然后对这个项目进行了Rebuild
。
现在正在显示图像。