如何使用同一个 DLL 中的 ResourceDictionary 资源?
基本上我正在尝试创建一个 UI 库,其中包含从 Page 类派生的所有类。我想将所有用户界面页面保留在同一个 DLL 中。
要查看问题,从VS2012开始,创建一个Windows 8库项目,然后添加ItemDetailed Page。现在,如果您从编辑器打开创建的页面,您将收到一些错误,例如“资源“LayoutRootStyle”无法解析”。
这只是 Xaml 设计器错误,因此不会阻止您的项目构建或运行 .
唯一需要的是所有 ResourceDictonary 都需要由主应用程序 App.xaml 引用(例如,通过<ResourceDictionary Source="/<myLibraryName>/Common/StandardStyles.xaml"/>
在库中使用或创建调用 Init 方法,该方法将动态添加资源字典)。
Xaml 设计器中错误的快速解决方法是在库中复制 App.xaml/App.xaml.cs(但在运行时,主应用程序仍需要对所需的 ResourceDictionary 进行引用,因为 App.xaml将不会使用该库的内容)。
另一种可能性是在每个页面上的 ResourceDictionary 上添加一个引用,但我相信这将更加昂贵,因为它将为每个页面创建一个字典实例。