我们可以使用以下代码来了解Windows窗体中系统语言的更改时间 - Form.InputLanguageChanged:
string _language = "";
InputLanguageChanged += new InputLanguageChangedEventHandler( (sender, e) =>
{
language = InputLanguage.CurrentInputLanguage.LayoutName;
});
什么是WPF相当于Form.InputLanguageChanged
?
答案 0 :(得分:11)
您可以使用以下代码检测WPF中的键盘语言更改
string language = "";
System.Windows.Input.InputLanguageManager.Current.InputLanguageChanged +=
new InputLanguageEventHandler((sender, e) =>
{
language = e.NewLanguage.DisplayName;
});
注意:无需检测系统UI语言更改,因为它需要注销/登录,这反过来会强制所有应用程序重新启动(查看Hans Passant对How To Detect Language Changes While Runtime ? (C#)的评论
答案 1 :(得分:3)
希望this有所帮助。您必须使用InputLanguageManager.InputLanguageChanging Event,这会在启动输入语言更改时发生。它应该如下。
InputLanguageManager.Current.InputLanguageChanged += new InputLanguageEventHandler(Current_InputLanguageChanged);
以下是我发现有趣的更多细节。 WPF Localization - On-the-fly Language Selection