[英]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.