Обнаружение изменения языка системы в WPF
Мы можем использовать следующий код, чтобы узнать, когда изменяется системный язык в Windows Form - Form.InputLanguageChanged:
string _language = "";
InputLanguageChanged += new InputLanguageChangedEventHandler( (sender, e) =>
{
language = InputLanguage.CurrentInputLanguage.LayoutName;
});
Что такое WPF-эквивалент Form.InputLanguageChanged
?
Ответы
Ответ 1
Вы можете использовать код, как показано ниже, для обнаружения изменения языка клавиатуры в WPF
string language = "";
System.Windows.Input.InputLanguageManager.Current.InputLanguageChanged +=
new InputLanguageEventHandler((sender, e) =>
{
language = e.NewLanguage.DisplayName;
});
Примечание: нет необходимости определять изменение языка пользовательского интерфейса системы, так как для этого требуется выход из системы/входа в систему, что, в свою очередь, заставит все приложения перезагрузиться (отметьте комментарий Hans Passant для Как определить язык Изменения во время выполнения? (С#)
Ответ 2
Надежда это помогает. Вы должны использовать InputLanguageManager.InputLanguageChanging Event, которое происходит, когда инициируется смена языка ввода. Это должно быть как показано ниже.
InputLanguageManager.Current.InputLanguageChanged += new InputLanguageEventHandler(Current_InputLanguageChanged);
И вот подробности, которые я нашел интересными. Локализация WPF - выбор языка на лету