UWP多项目本地化问题:跨类库Resources.resw无法绑定UI内容
UWP跨类库资源文件绑定解决方案
当资源文件(Resources.resw)存放在类库而非UI项目时,默认的x:Uid绑定会失效,以下是两种纯XAML的解决方式:
方式一:直接使用ms-resource标记扩展
跳过x:Uid,在控件属性里直接指定类库资源的位置:
<Button Content="{ms-resource:LoginButton.Content, Assembly=Util}" />
LoginButton.Content是你在Util类库Resources.resw中定义的资源键Assembly=Util指定资源所在的类库程序集名称(需与类库项目的程序集名称一致)
方式二:绑定类库的ResourceManager实例
- 在UI项目的页面或App.xaml的资源字典中,添加指向类库资源的ResourceManager实例:
<Page.Resources> <ResourceDictionary> <windows:ResourceManager x:Key="UtilResources" BaseName="Util.Resources" /> </ResourceDictionary> </Page.Resources>
- 需先在XAML头部引入命名空间:
xmlns:windows="using:Windows.ApplicationModel.Resources" BaseName="Util.Resources"对应类库中Resources.resw的基名称(格式为[类库命名空间].[资源文件名(不含.resw)])
- 然后在Button上通过绑定使用该资源:
<Button Content="{Binding [LoginButton.Content], Source={StaticResource UtilResources}}" />
注意事项
- 确保Util类库的Resources.resw文件生成操作设置为
PRIResource(默认配置,可在文件属性中确认) - 确认UI项目已正确引用Util类库
内容的提问来源于stack exchange,提问作者Piumi ganegoda
相关产品推荐
相关产品推荐

