简体   繁体   English

检测WPF中的系统语言更改

[英]Detect system language change in WPF

We can use following code to know when the system language change in Windows Form - Form.InputLanguageChanged : 我们可以使用以下代码来了解Windows窗体中系统语言何时发生更改 - Form.InputLanguageChanged

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

What is WPF equivalent of Form.InputLanguageChanged ? 什么是WPF相当于Form.InputLanguageChanged

You can use the code as follow to detect keyboard language change in WPF 您可以使用以下代码检测WPF中的键盘语言更改

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

Note: there is no need to detect system UI language change as it requires logoff/logon which in turn will force all applications to restart (Check Hans Passant comment for How To Detect Language Changes While Runtime ? (C#) 注意:不需要检测系统UI语言更改,因为它需要注销/登录,这反过来将强制所有应用程序重新启动(检查Hans Passant关于如何在运行时检测语言更改的注释?(C#)

Hope this helps. 希望这有帮助。 You have to use InputLanguageManager.InputLanguageChanging Event which occurs when a change of input language is initiated. 您必须使用InputLanguageManager.InputLanguageChanging事件 ,该事件在启动输入语言更改时发生。 It should be as below. 它应该如下。

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

And here is more details that I found interesting. 这里有更多我觉得有趣的细节。 WPF Localization - On-the-fly Language Selection WPF本地化 - 即时语言选择

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM