c#在资源中保存字符串

时间:2016-12-01 12:22:44

标签: c# wpf resourcedictionary

每次我编程C#时,我都会将用户的UI字符串写入我的WPF代码中。我认为这不是最好的做法。是否可以将所有输出字符串保存在ResourceDictionary中?所以我把它们存储在一个文件中而不是很多不同的文件中。我认为改变字符串要容易得多。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

无论您有控制台应用程序还是wpf或Web,设置都是相同的。您需要做的是添加资源文件。要练习和开始,您可以创建一个控制台应用程序,然后:

  1. 双击解决方案资源管理器中项目的“属性”节点。
  2. 点击“资源”标签。
  3. 单击链接以创建资源文件。
  4. 在“名称”列中输入“Hello”。这将在代码中用于引用此转换。在值列中输入“Hello”。这是用户将看到的内容。
  5. 请注意,已在属性节点下创建名为Resources.resx的文件。
  6. 右键单击属性节点,然后选择添加>新物品。选择Resources File并将此文件命名为:Resources.fr.resx。 (fr代表法国人)
  7. 在“名称”列中输入“Hello”。这将在代码中用于引用此转换。在值列中输入“Bonjour”。这是用户将看到的内容。
  8. 现在在main方法中添加以下代码:

    // Default local on my OS is En (English). If it was French it will say "Bonjour" instead.
    Console.WriteLine(Resources.Hello);
    // Now we change it to French so you can see how it picks the right string based on the language
    // See fr in line below. This will pick up the Resources.fr.resx instead of Resources.resx
    Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("fr-FR");
    Console.WriteLine(Resources.Hello);
    Console.ReadKey();
    

    运行应用程序,输出将是:

    您好 的Bonjour

    在WPF中它是相同的想法,但是您将使用不同的方式而不是Console.WriteLine。例如:

    Title="{x:Static p:Resources.Hello}" Height="350" Width="525">