Получить список установленных языков в Windows 10 - PullRequest
0 голосов
/ 06 декабря 2018

Мне нужно отобразить список установленных языков в ComboBox в приложении WPF.Например, у меня установлен английский (США) и английский (Индия).Я хочу показать их оба в моем ComboBox

. Я использую класс CultureInfo для этого.Ниже приведен фрагмент того, что я пытаюсь.Я могу получить все культуры.Но мне нужны только те культуры, которые устанавливаются через системные настройки.

var cultureInfos = CultureInfo.GetCultures(CultureTypes.NeutralCultures);
foreach (var culture in cultureInfos)
{
    Console.WriteLine(culture.Name);
}

1 Ответ

0 голосов
/ 06 декабря 2018

Вы можете использовать встроенную функцию GetKeyboardLayoutList, чтобы получить список установленных языков ввода.

Вот пример:

IEnumerable<CultureInfo> GetInstalledInputLanguages()
{
    // first determine the number of installed languages
    uint size = GetKeyboardLayoutList(0, null);
    IntPtr[] ids = new IntPtr[size];

    // then get the handles list of those languages
    GetKeyboardLayoutList(ids.Length, ids);

    foreach (int id in ids) // note the explicit cast IntPtr -> int
    {
        yield return new CultureInfo(id & 0xFFFF);
    }
}

[DllImport("user32.dll")]
static extern uint GetKeyboardLayoutList(int nBuff, [Out] IntPtr [] lpList);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...