在 WPF、C# 中使用文化访问资源文件

Posted

技术标签:

【中文标题】在 WPF、C# 中使用文化访问资源文件【英文标题】:Accessing Resource File with Culture in WPF, C# 【发布时间】:2016-03-02 18:00:59 【问题描述】:

我正在编写一个应用程序,其中的文本块可以显示不同语言的 cmets。我正在尝试使用我真的不明白的“文化”。

我关注了一些视频,但仍然收到相同的错误消息:

这是我添加的命名空间:

    using System.Reflection;
    using System.Globalization;
    using System.Resources;

我只是在添加 switch 语句之前测试这个概念:

        CultureInfo cult = CultureInfo.CreateSpecificCulture("en");

        Assembly lingua = Assembly.Load("Bailing Calculator");

        ResourceManager rm = new ResourceManager("Bailing Calculator.Resources.Res", lingua);

        tbkPHDiameter.Text = rm.GetString("phDia", cult);

我只是没有给出 ResourceManager 的正确路径吗?感谢随之而来的教育攻势!

【问题讨论】:

【参考方案1】:

将您的代码更新为:

  CultureInfo cult = CultureInfo.CreateSpecificCulture("en-US");

  Assembly lingua = Assembly.Load("Bailing Calculator");
  ResourceManager rm = new ResourceManager(string.Format("Bailing_Calculator.Resources.0",cult.Name), lingua);
tbkPHDiameter.Text = rm.GetString("phDia");

并将资源文件名称更新为您的目标文化名称: 所以文件名看起来像:en-US

【讨论】:

我已经复制并粘贴了您的代码。我仍然收到同样的警报。 您是否将解决方案资源管理器中的资源文件从 en.resx 重命名为 en-Us.resx?我也更新了答案,因为命名空间不支持空间。 我做了调整。一样的报警。构建操作应该设置为什么? 添加新项目时默认设置为嵌入式资源 就是这样!在试图弄清楚这件事时,我已经使用了构建类型。感谢您的代码!

以上是关于在 WPF、C# 中使用文化访问资源文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 c# wpf 从资源文件播放声音

如何在不更改文化的情况下更改 c# winform 应用程序的资源文件?

从资源中添加 .wav 文件(WPF C#)

C# WPF 项目启动真找不到资源 图片文件

C# WPF 项目启动真找不到资源 图片文件

C# WPF 在构建时创建了太多的文化文件夹