0

我有以下情况:

  • ProjectA 需要在UserControl.
    它在其项目中有图像(可以是资源或其他)。

  • 但 ProjectA 只是一个 dll。ProjectB(通过 Prism)使用它。

因此,在 ProjectA 中执行此操作适用于设计时间(如果 MyImage.png 文件设置为“资源”编译操作):

<Image Source="pack://application:,,,/ProjectA;component/MyImage.png"></Image>

但是在运行时,复制到 ProjectB 的所有内容都是 dll(这就是我想要复制的所有内容。所以 MyImage.png 存在于运行文件夹中......并且它不显示图像。

我认为 Make it Resource 会嵌入它,但它似乎不起作用。

我还尝试使用 Resources.resx,但这似乎根本不起作用(或者我找不到在 xaml 中绑定图像的方法)。

如何将图像放在我的 dll 中,然后从那里引用它(或其他一些非文件系统依赖的方式来获取图像)?

4

1 回答 1

1

我将一个带有 2 个项目的 WPF 应用程序放在一起,看看是否可以重现问题。不幸的是,这一切都奏效了。我使用了与您的帖子相同的包 uri 格式,并且能够直接在两个项目的图像控件中显示图片,并且当将“项目 A”中的用户控件放入项目 B 的窗口时,也可以显示图像。注意:我将图片设置为具有资源的构建操作并将其设置为“不复制”。

鉴于它在一个简单的场景中工作,我的下一个想法是问题是否与您使用 PRISM 的事实有关。我会看看,看看我能找到什么。

于 2012-06-13T04:38:11.373 回答