.NET: Когда InputLanguageManager.Current равен нулю?

Мы используем следующий код для установки языка ввода в операционной системе:

InputLanguageManager.Current.CurrentInputLanguage = initialCulture;

Он работает на ПК разработчика, но на ПК производства Текущие ноль.

InputLanguageManager.Current реализован следующим образом:

public static InputLanguageManager Current
{
  get
  {
    if (InputMethod.Current.InputLanguageManager == null)
      InputMethod.Current.InputLanguageManager = new InputLanguageManager();
    return InputMethod.Current.InputLanguageManager;
  }
}

InputMethod.Current реализован следующим образом:

public static InputMethod Current
{
  get
  {
    InputMethod inputMethod = (InputMethod) null;
    Dispatcher dispatcher = Dispatcher.FromThread(Thread.CurrentThread);
    if (dispatcher != null)
    {
      inputMethod = dispatcher.InputMethod as InputMethod;
      if (inputMethod == null)
      {
        inputMethod = new InputMethod();
        dispatcher.InputMethod = (object) inputMethod;
      }
    }
    return inputMethod;
  }
}

MSDN говорит, что InputMethod может быть нулевым, когда нет активного метода ввода.

Я не понимаю этого. Кто-нибудь еще?

0 ответов

Другие вопросы по тегам