.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 может быть нулевым, когда нет активного метода ввода.
Я не понимаю этого. Кто-нибудь еще?