我有一个类库,它本质上是要运行的表单的集合。将其视为较大程序中的模块/插件,可以独立开发,所有较大程序关心的是DLL(和接口)。
运行类库的主要形式很好并且运行良好。我的问题是图片。我在类库中设置了一个Images文件夹,添加了一个图像,将它的Build Action设置为Embedded Resource,然后重建项目,但图像不会出现在主程序中。
XAML:
<Button x:Name="btnAdd" Command="{Binding Add}">
<StackPanel Orientation="Horizontal">
<Image x:Name="imgAdd" Source="Resources/Add.png"/>
<Label>New</Label>
</StackPanel>
</Button>
有趣的是,如果我在代码隐藏中创建BitmapSource
并将其分配给表单的构造函数中的imgAdd
,它将按预期工作。有没有人知道为什么会出现这种情况?
答案 0 :(得分:0)
使用Pack URIs为您的图片。
<Button x:Name="btnAdd" Command="{Binding Add}">
<StackPanel Orientation="Horizontal">
<Image x:Name="imgAdd" Source="pack://application:,,,/ReferencedAssembly;component/Resources/Add.png"/>
<Label>New</Label>
</StackPanel>
</Button>
答案 1 :(得分:0)
事实证明,正确的Build Action
实际上是Resource
而不是Embedded Resource
。现在考虑一下,Embedded Resource
看起来更像是对另一个DLL中Resource
的引用。
我在尝试改进代码时无意中在this post找到了答案。