将字符串保存到C#中的ResourceDictionary中

问题描述 投票:0回答:1

[每次我使用C#编程时,我都会将UI字符串写入WPF代码中。我认为这不是编写UI字符串的最佳实践。是否可以将它们全部保存到ResourceDictionary中?这样,它们都存储在单个文件中,而不是代码中。以后更改字符串也可能会更容易。

我如何实现这样的目标?谢谢。

c# wpf resourcedictionary
1个回答
2
投票

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

  1. 在解决方案资源管理器中双击项目的“属性”节点。
  2. 单击“资源”选项卡。
  3. 单击链接以创建资源文件。
  4. 在“名称”列中输入“ Hello”。这将在代码中用于引用此翻译。在值列中输入“ Hello”。这就是用户所看到的。
  5. 注意,已在属性节点下创建了一个名为Resources.resx的文件。
  6. 右键单击属性节点,然后选择添加>新建项。选择资源文件,并使用以下名称精确命名该文件:Resources.fr.resx。 (fr代表法语)
  7. 在“名称”列中输入“ Hello”。这将在代码中用于引用此翻译。在值列中输入“ Bonjour”。这就是用户所看到的。

现在在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();

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

你好卓悦

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

Title="{x:Static p:Resources.Hello}" Height="350" Width="525">
© www.soinside.com 2019 - 2024. All rights reserved.