我正在编写一个 WPF 用户控件库,并且在尝试通过某些 XAML 访问的资源图像时遇到问题。只是为了好玩,图像在设计时按预期显示,仅在运行时失败。
我尝试将构建操作设置为“无”、“内容”、“资源”和“嵌入式资源”,但我不断收到以下神秘异常:
'在 'System.Windows.Baml2006.TypeConverterMarkupExtension' 上提供值引发了异常。' 行号“18”和行位置“6”。
查看内部异常,似乎是pack URI的问题。当我尝试:
<ImageBrush x:Key="mybrush" ImageSource="pack://application:,,,/Resources/an image.png" />
我得到:
Assembly.GetEntryAssembly() 返回 null。
好的,所以这可能是因为我的库现在正在从另一个程序集中调用。但是当我遵循建议并尝试时:
<ImageBrush x:Key="mybrush" ImageSource="pack://application:,,,my_assembly;component;/Resources/an image.png" />
我得到一个内部异常:
“无法识别 URI 前缀。”
为了增加乐趣,我有另一个图像资源,通过实际的 C# 代码(即不通过 XAML)访问它没有问题。
我究竟做错了什么?感觉它会很简单,但现在是主管。