gpt4 book ai didi

wpf - XAML 无法从 Resx 文件读取值

转载 作者:行者123 更新时间:2023-12-02 05:04:07 28 4
gpt4 key购买 nike

我有一个复合应用程序,它有一个 Shell 窗口和一些模块,每个模块都使用 MEF (Microsfot Prism) 加载到 shell 上。 Shell 本身有一个资源文件 default(Resource.resx) 和其他语言(如 Resource.ar-SA.resx)也支持 Localilzation。

  • 对于 Xaml:我使用了 x:Static Resource.KeyName
  • 在 c# 代码中:我曾使用 GetString(keyName, culture) 来获取所需的字符串。

为了支持本地化,我添加了一行代码来获取系统的当前文化并加载所需的 Resx 文件。用于设置当前文化。

Resource.Culture = 
new System.Globalization.CultureInfo(System.Globalization.CultureInfo.CurrentCulture.Name);

在 App.Xaml.cs 中

所有这些工作都很好。

同样,使用 MEF 加载的每个模块都有如上所述的资源文件。但在模块的情况下,Xaml 中为特定语言文件定义的资源 key 不起作用。它总是从默认 (Resource.Resx) 文件中获取值。但是使用 ResourceManager 类的代码中使用的任何键都可以正常工作。

最佳答案

我最终将所有资源保存在一个“基础设施”项目中,因此所有资源都从一个地方加载,这让事情变得更简单。

我的 xaml 绑定(bind)看起来像这样

获取对您的 resx 类的引用。

xmlns:resources="clr-namespace:Infrastructure.resources;assembly=Infrastructure"

现在获取文本

Content="{x:Static resources:Resources.Activity_Regarding}"

您可能已经这样做了,但我看不到。您需要确保命名空间与您要使用的 resx 相匹配。所以你的模块命名空间。

关于wpf - XAML 无法从 Resx 文件读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13621072/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com