【发布时间】:2015-06-03 14:05:06
【问题描述】:
我正在开发一个 WPF 应用程序。初始化主窗口时,我获取用户的系统语言并更改 CurrentCulture :
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-CA");
我在 Ressources 文件夹中有 3 个 .resx 文件(resource.fr-BE.resx、resource.nl-BE.resx、resource.resx)。
在我的 XAML 中,我指的是默认的 ressource.resx :
xmlns:r="clr-namespace:Renoir.UserInterface.Resources"
并在我的资源文件中为我的控件使用密钥:
Title="{x:Static r:resource.MAINWINDOW_TITLE}"
但应用程序无法加载正确的资源文件(例如,当我将文化更改为法语 (fr-BE) 时,它不会加载 resource.fr- BE.resx 文件,它总是显示默认资源文件中的字符串(resource.resx)
但是在后面的代码中,如果在我更改 CurrentCulture 之后,我尝试从 resx 中获取一个字符串,我收到了正确的字符串:
ResourceManager rm = null;
rm = new ResourceManager("Renoir.UserInterface.Resources.resource", Assembly.GetExecutingAssembly());
MessageBox.Show(rm.GetString("DATAGRID_AUTHOR"));
有人有想法吗?
提前致谢!
【问题讨论】:
-
什么时候更改 CultureInfo?在 InitializeComponent() 之前还是之后?
-
不要在标题中加上“已解决”,将答案标记为已接受已经表明您的问题已解决。
-
好的,谢谢你的信息:)
标签: c# wpf xaml globalization resx