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