类库不包括图像

时间:2015-01-27 07:42:14

标签: c# wpf dll resources

我有一个类库,它本质上是要运行的表单的集合。将其视为较大程序中的模块/插件,可以独立开发,所有较大程序关心的是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,它将按预期工作。有没有人知道为什么会出现这种情况?

2 个答案:

答案 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找到了答案。