我有一个包含很多程序集(> 100)的项目。其中许多程序集都有像“图像”这样的子文件夹。例如,许多 wpf-windows/user-controls 都有一个“\images\close.png”。这意味着我有许多“close.png”图片,而不仅仅是一张。
现在我想为所有图像/资源创建一个中心位置。我做了什么:
- 创建了一个名为“abcdeCore.Resources”的新类库/程序集
- 添加了一个名为“ImageDictionary.xaml”的资源字典
- 创建了一个子文件夹“图像”
- 将我的图像复制到此子文件夹。例如“abcdeCore.Resources\images\close.png”
- 将图像的内置属性设置为“资源”
- 像这样在“ImageDictionary.xaml”中声明图像“<ImageSource x:Key="Image_close">close.png</ImageSource>”
在我想像这样使用“close.png”图像的wpf窗口中使用字典
<Window.Resources> <ResourceDictionary Source="pack://application:,,,/abcdeCore.Resources;component/Images/ImageDictionary.xaml"/></Window.Resources>
- 尝试像这样使用在中央资源字典“ImageDictionary.xaml”中声明的图像 <Button><Image Source="{StaticResource Image_close}"></Image></Button>
在 VS 的设计器模式下,图像正在显示,但是当我启动项目并打开我的 wpf 窗口时,我收到一个错误,例如
"{"找不到文件或程序集 \"abcdeCore.Resources, Culture=neutral\" 或其依赖项之一。系统找不到给定的文件。":"abcdceResources, Culture=neutral"} (我将错误消息从德语翻译成英语:))
有谁知道我做错了什么以及为什么我不能让中央资源字典正常工作?感谢您的任何想法!!!
来自德国的问候
编辑:我的 wpf 窗口所在的程序集中也有对“abcdeCore.Resources”的引用
编辑 2: System.Windows.Markup.XamlParseException: Message=RowNumber "7" and RowPosition "10" of "Setting the Property "System.Windows.ResourceDictionary.Source" 导致异常"。