Подтвердить что ты не робот

Обнаружение изменения языка системы в WPF

Мы можем использовать следующий код, чтобы узнать, когда изменяется системный язык в Windows Form - Form.InputLanguageChanged:

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

Что такое WPF-эквивалент Form.InputLanguageChanged?

4b9b3361

Ответ 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 - выбор языка на лету