使用资源字典作为所有图像的中心集合

本文关键字:图像 集合 资源 字典 | 更新日期: 2023-09-27 17:56:53

我有一个有很多程序集的项目(> 100)。 其中许多程序集都有像"图像"这样的子文件夹。 例如,许多WPF-Windows/User-Controls都有一个"''images''close.png"。 这意味着我有很多"接近.png"图片,而不仅仅是一张。

现在我想为所有图像/资源创建一个中心位置。 我做了什么:

  • 创建了一个名为"a.b.c.d.e.Core.Resources"的新类库/程序集
  • 添加了一个名为"ImageDictionary.xaml"的资源字典
  • 创建了一个子文件夹"图像"
  • 例如"a.b.c.d.e.Core.Resources''images''close.png"
  • 将映像的生成属性设置为"资源"
  • 在"ImageDictionary.xaml"中声明了图像,如下所示"close.png"
  • 在WPF窗口中使用字典,我想在其中使用"关闭.png"图像,如下所示

    <窗口资源>

  • 尝试使用中央资源字典"ImageDictionary.xaml"中声明的图像,如下所示<按钮><图像源>

在VS的设计器模式下,图像显示,但是当我启动项目并打开WPF窗口时,出现类似错误

"

{"找不到文件或程序集 ''"a.b.c.d.e.Core.Resources, Culture=neutral''" 或其依赖项之一。系统找不到给定的文件.":"a.b.c.d.c.e.Resources, Culture=neutral"} (我将错误消息从德语翻译成英语:)

有谁知道我做错了什么以及为什么我不能让中央资源字典正常工作?感谢您的任何想法!!

来自德国的问候

编辑:我在我的WPF窗口所在的程序集中也有对"a.b.c.d.e.Core.Resources"的引用

编辑2:System.Windows.Markup.XamlParseException: message=RowNumber "7" 和 RowPosition "10" 的 "Set the Property 'System.Windows.ResourceDictionary.Source" 导致异常。

使用资源字典作为所有图像的中心集合

好的

,我的第一个想法是,由于WinApi的最大路径长度限制,找不到该文件。我不确定,因为我对资源加载机制的内部一无所知。

请尝试从较短的路径启动程序。也许,它会解决问题。

编辑

只是一个想法,您的ImageDictionary.xaml是否声明为资源?如果没有,则应将其构建步骤设置为"资源"。

编辑2

下一个想法。请通过注释掉元素来清空ImageDictionary.xaml。逐个元素取消注释字典。也许,你会以这种方式找到问题的原因。