【发布时间】:2017-10-30 08:12:00
【问题描述】:
所以我在用户控件库中有几个DataTemplates。这些DataTemplates 驻留在themes\generic.xaml 资源字典中,可以毫无问题地在库项目中使用。
此库项目由主桌面应用程序项目使用,但在运行时Application.Current.FindResource() 无法找到库中定义的任何资源。 (我以为会的!)
所以我继续将该资源字典合并到应用程序资源字典中:
<Application x:Class="Application">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/ControlsLibraryProj;component/themes/generic.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
瞧!它现在可以访问那些DataTemplates。我的问题是,我做对了吗?我是否需要合并在引用项目中定义的字典?不知何故,我的印象是Application.Current.FindResource() 可以访问所有已加载模块(exe 和 dll)中定义的所有资源。这是正确的吗?我是否通过合并不必要地加载了两次?
【问题讨论】:
-
用户控件库是第三方组件还是您自己的组件?
-
@IlVic:这是我自己的库,可作为解决方案中的项目使用。
标签: wpf xaml resourcedictionary