Detect system language change in WPF
We can use following code to know when the system language change in Windows Form - Form.InputLanguageChanged:
string _language = "";
InputLanguageChanged += new InputLanguageChangedEventHandler( (sender, e) =>
{
language = InputLanguage.CurrentInputLanguage.LayoutName;
});
What is WPF equivalent of Form.InputLangu开发者_高级运维ageChanged
?
You can use the code as follow to detect keyboard language change in 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#)
Hope this helps. You have to use InputLanguageManager.InputLanguageChanging Event which occurs when a change of input language is initiated. 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
精彩评论