如何在用户控件库中访问XAML中的资源图像?

时间:2014-01-16 16:37:45

标签: c# image xaml resources pack-uri

我正在编写一个WPF用户控件库,但我正在尝试通过某些XAML访问资源映像。只是为了好玩,图像在设计时按预期显示,并且仅在运行时失败。

我已经尝试将构建操作设置为“无”,“内容”,“资源”和“嵌入资源”,但我不断得到以下神秘异常:

  

'提供价值   'System.Windows.Baml2006.TypeConverterMarkupExtension'扔了一个   例外。'行号'18'和行位置'6'。

查看内部异常,它似乎是包URI的问题。当我尝试:

<ImageBrush x:Key="mybrush" ImageSource="pack://application:,,,/Resources/an image.png" />

我明白了:

  

Assembly.GetEntryAssembly()返回null。

好的,这可能是因为我的库现在是从另一个程序集中调用的。但是当我按照the recommendations并尝试:

<ImageBrush x:Key="mybrush" ImageSource="pack://application:,,,my_assembly;component;/Resources/an image.png" />

我得到了一个内在的例外:

  

“无法识别URI前缀。”

为了增加乐趣,我有另一个图像资源,我可以通过实际的C#代码访问(即不通过XAML)。

我做错了什么?感觉它会非常简单,但此刻我正在寻找头脑。

1 个答案:

答案 0 :(得分:1)

将ImageSource更改为

ImageSource="pack://application:,,,/my_assembly;component/Resources/your_image.p‌​ng"