{Windows.UI.Xaml.Markup.XamlParseException:Cannot从‘ms-resource:///Files/StylesButtonStyle.xaml’.
定位资源在App.xaml中我们有
<ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="StylesCustom.xaml" /> <ResourceDictionary Source="StylesButtonStyle.xaml"/> <ResourceDictionary Source="StylesListsStyle.xaml"/> </ResourceDictionary.MergedDictionaries>我们遵循了
中的指导Windows 10 Universal Merged Dictionaries
<ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="ms-appx:///Styles/Custom.xaml" /> <ResourceDictionary Source="ms-appx:///Styles/ButtonStyle.xaml"/> <ResourceDictionary Source="ms-appx:///Styles/ListsStyle.xaml"/> </ResourceDictionary.MergedDictionaries>则错误为
{Windows.UI.Xaml.Markup.XamlParseException:无法为属性‘Windows.UI.Xaml.ResourceDictionary.Source’赋值,因为无法将类型‘Windows.Foundation.String’赋值给类型...
我们还在ResourceDictionary in separate library
中尝试了该解决方案 <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/LibraryName;component/Styles/Custom.xaml" /> <ResourceDictionary Source="pack://application:,,,/LibraryName;component/Styles/ButtonStyle.xaml"/> <ResourceDictionary Source="pack://application:,,,/LibraryName;component/Styles/ListsStyle.xaml"/> </ResourceDictionary.MergedDictionaries>则错误为
{Windows.UI.Xaml.Markup.XamlParseException:无法从Pack://应用程序:、/LibraryName;component/Styles/Custom.xaml’
中找到资源如何在UWP类库中引用资源字典?
推荐答案正如@justin所指出的,这里的问题是您忘记在URI中添加类库名称。让我们假设您的解决方案中有一个名为"ClassLibrary1"的UWP类库。然后,您可以按如下方式合并它们:
<ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="ClassLibrary1/Styles/Custom.xaml" /> <ResourceDictionary Source="ClassLibrary1/Styles/ButtonStyle.xaml"/> <ResourceDictionary Source="ClassLibrary1/Styles/ListsStyle.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary>或
<ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="ms-appx:///ClassLibrary1/Styles/Custom.xaml" /> <ResourceDictionary Source="ms-appx:///ClassLibrary1/Styles/ButtonStyle.xaml"/> <ResourceDictionary Source="ms-appx:///ClassLibrary1/Styles/ListsStyle.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary>也不要忘记将"ClassLibrary1"添加到主项目的引用中。
此外,如果您的类库不在同一解决方案中,则需要在类库的"属性"页的生成配置中选中"生成库布局"选项。
因为在WinRT环境中,资源不再嵌入到程序集中,而是作为内容放置在DLL旁边。因此,我们需要生成库布局,以便在其他项目中方便地引用该DLL。详情请参考my previous answer。
更多推荐
引用UWP类库中的资源字典
发布评论