【发布时间】:2014-02-05 16:49:29
【问题描述】:
我正在编写一个 WPF 用户控件库,但在尝试通过某些 XAML 访问的资源图像时遇到了问题。只是为了好玩,图像在设计时按预期显示,仅在运行时失败。
我尝试将构建操作设置为“无”、“内容”、“资源”和“嵌入式资源”,但我不断收到以下神秘异常:
'提供值 'System.Windows.Baml2006.TypeConverterMarkupExtension' 抛出了一个 例外。'行号“18”和行位置“6”。
查看内部异常,似乎是pack 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)访问它没有问题。
我做错了什么?感觉这会很简单,但现在是主管。
【问题讨论】:
-
try ImageSource="pack://application:,,,/my_assembly;component/Resources/your_image.png" 将图像标记为未嵌入的资源
-
@dellywheel 成功了!想把它作为答案,以便我可以将其标记为已接受?
-
优秀 :) 现在将添加为答案
标签: c# image xaml resources pack-uri