Как изменить язык ввода в коде C #? - PullRequest
3 голосов
/ 05 ноября 2010

Я пишу приложение wpf с использованием C # (VS2010), и когда мое приложение запускается, язык ввода берется из языка ввода системы, который является английским.

Я хочу, чтобы мое приложение автоматически меняло язык ввода, не нажимая (Shift + Alt)

Подскажите, пожалуйста, как это сделать?

Еще один вопрос, могу ли я изменить часовой пояс в моей системе, тоже используя мое приложение?

Ответы [ 4 ]

6 голосов
/ 05 ноября 2010

Если вы просто хотите изменить язык ввода для вашего приложения, посмотрите на InputLanguage.CurrentInputLanguage

Или, если вы хотите изменить язык ввода системы по умолчанию, посмотрите на функцию SystemParametersInfo с флагом SPI_SETDEFAULTINPUTLANG.

Что касается часового пояса, существует класс TimeZoneInfo для получения информации, но для его установки необходимо использовать функцию SetTimeZoneInformation .

4 голосов
/ 27 июля 2011

Я знаю, что эта тема довольно старая, но если вы пришли сюда из Google по какому-то поисковому запросу, например, "wpf switch keyboard" (как и я) Вам определенно стоит попробовать специальный класс WPF InputLanguageManager: http://msdn.microsoft.com/en-us/library/system.windows.input.inputlanguagemanager.aspx Особо обратите внимание на одно из прикрепленных к нему свойств, которое называется InputLanguage. В большинстве случаев это все, что вам нужно.

3 голосов
/ 26 октября 2013

Вы должны использовать эту функцию:

public static void lang(string lge)
{
    System.Globalization.CultureInfo TypeOfLanguage = new System.Globalization.CultureInfo(lge);
    InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(TypeOfLanguage);
}

и при вызове этой функции параметр lge должен быть меткой нужного языка например "ar-dz" для алжирского арабского языка или "fr-fr" для французского языка.

0 голосов
/ 01 июня 2019

Сначала добавьте

using System.Globalization;

Затем напишите после InitializeComponent ();этот код

        InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(Application.CurrentCulture);
        InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("ar-EG"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...