【问题标题】:How to fetch a string resource in a class library如何在类库中获取字符串资源
【发布时间】:2023-03-19 07:55:01
【问题描述】:

我正在开发一个包含多个 .resw 资源文件和页面的类库。问题是,如何获取字符串并将其用于 UI 组件属性。

最好以另一种方式展示案例。首先,解决方案结构请参考图片:

从图中,“MobileReplicaBase”是一个类库。请不要选择两个文件。在“UIresources.resw”中,我定义了一个字符串资源:

并尝试在 EdicolaPage 的按钮控件中使用它:

<Button x:Name="mOpenBtn" Grid.Row="4" x:Uid="OpenBtn" Visibility="{x:Bind Path=type, Converter={StaticResource typeStringToVisibilityConverterForOpenButton}}" Tag="{x:Bind Path=productCode}" Click="mOpenBtn_Click"/>

但这不起作用,按钮的 Content 属性只是一个空字符串。我可以猜测的是,该应用程序正在尝试从项目“MobileReplica”的资源映射中加载“OpenBtn”资源,该项目目前是解决方案中的启动项目。

注意:按钮可能位于 GridView 的数据模板中,因此在 C# 代码中获取资源可能不是一个好主意。

我说得够清楚了吗?如果没有,请随时询问。任何帮助将不胜感激,谢谢。

亚历克斯

【问题讨论】:

  • 问题很清楚,但我没有看到任何针对您的问题的尝试。您能否更新您的帖子以包含您尝试过的代码,哪些不起作用,以便我们可以更好地为您提供帮助。
  • 你试过了吗? var resourceLoader = Windows.ApplicationModel.Resources.ResourceLoader.GetForCurrentView("YourLibrary/Resources"); var resource = resourceLoader.GetString("resourceName");docs.microsoft.com/en-us/windows/uwp/app-resources/…
  • @mm8 我知道这适用于 C# 代码。但抱歉,正如我所说,该按钮实际上是用于 GridView 的数据模板的一部分。所以在C#代码中实现它真的不是一个好主意,在xaml文件中更好。谢谢。
  • @Alex.Y:那么使用x:Uid directive 怎么样?你试过了吗?
  • @mm8 是的,这正是我正在尝试的。但不起作用。

标签: c# .net uwp


【解决方案1】:

问题解决了。使用以下代码访问类库中的资源:

<Button x:Uid="/{library_name}/{resource_file_name}/{resource_name}"/>

就我而言,我应该使用:

<Button x:Uid="/MobileReplicaBase/UIresources/OpenBtn">

访问资源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多