引用UWP类库中的资源字典

编程入门 行业动态 更新时间:2024-10-25 08:23:21
本文介绍了引用UWP类库中的资源字典的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我们有一个使用模板10的UWP应用程序。资源在同一解决方案中的UWP类库中。当我们运行应用程序时,我们收到错误

{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类库中的资源字典

本文发布于:2023-11-12 03:39:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1580402.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字典   类库   资源   UWP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!