XAML 当我尝试本地化字符串在应用程序中不可见

7nbnzgx9  于 2023-09-28  发布在  其他
关注(0)|答案(1)|浏览(136)

在xaml文件中,我使用以下代码定义了按钮
xaml page
在“Resources.resw”文件中,我这样定义它。此文件位于其他类库中。
resources.resw page
但字符串在应用程序中不可见。如果Resources.resw在创建xaml文件的同一个项目中,则不会发生此问题。但是,我不能把它保存在同一个项目中,不得不移到另一个类库。
这就是文件的定义方式
C:\Users\annes\Desktop\localization\UWP\Main\WinApp\View\UserControl\URLUserControl.xaml C:\Users\annes\Desktop\localization\UWP\Main\WinAppUtil\Strings\en-US\Resources.resw
我该如何解决此问题?有没有别的办法?
我认为这个问题的发生是因为xaml文件中没有引用类库命名空间。但是我已经在项目中添加了类库依赖项。

mpbci0fu

mpbci0fu1#

根据文档Load string from a Class Library或a Windows Runtime Library,此类字符串的资源标识符通常采用LibraryName/ResourcesFileName/ResourceIdentifier的形式。库可以为自己的资源获取ResourceLoader。
对于您的场景,可以使用ResourceLoader加载字符串,或者直接使用xaml中的资源。

var resourceLoader = Windows.ApplicationModel.Resources.ResourceLoader.GetForCurrentView("<YourClassLibraryName>/<ResourcesName>/NextContent");
this.NextButton.Content = resourceLoader.GetString("Content");
<Button
      x:Name="NextButton"
      Margin="0,0,0,0"
      HorizontalAlignment="Center"
      Click="NextButton_Click"    
      x:Uid="/<YourClassLibraryName>/<ResourcesName>/NextContent" 
      FontWeight="SemiBold"/>
<data name="NextContent.Content" xml:space="preserve">
   <value>Next</value>
</data>

相关问题