检测WPF中的系统语言更改

我们可以使用以下代码来了解Windows窗体中系统语言何时发生更改 – Form.InputLanguageChanged :

string _language = ""; InputLanguageChanged += new InputLanguageChangedEventHandler( (sender, e) => { language = InputLanguage.CurrentInputLanguage.LayoutName; }); 

什么是WPF相当于Form.InputLanguageChanged

您可以使用以下代码检测WPF中的键盘语言更改

 string language = ""; System.Windows.Input.InputLanguageManager.Current.InputLanguageChanged += new InputLanguageEventHandler((sender, e) => { language = e.NewLanguage.DisplayName; }); 

注意:不需要检测系统UI语言更改,因为它需要注销/登录,这反过来将强制所有应用程序重新启动(检查Hans Passant对如何在运行时检测语言更改的注释?(C#)

希望这有帮助。 您必须使用InputLanguageManager.InputLanguageChanging事件 ,该事件在启动输入语言更改时发生。 它应该如下。

 InputLanguageManager.Current.InputLanguageChanged += new InputLanguageEventHandler(Current_InputLanguageChanged); 

这里有更多我觉得有趣的细节。 WPF本地化 – 即时语言选择