如何在C#代码中更改输入语言?

时间:2010-11-05 09:54:22

标签: c# wpf

我正在使用C#(VS2010)编写一个wpf应用程序,当我的应用程序运行时,输入语言取自系统输入语言,即英语。

我希望我的应用程序能够自动更改输入语言,而无需按(Shift + Alt

你能告诉我怎么做吗?

另一个问题,我是否可以使用我的应用程序更改系统中的时区?

4 个答案:

答案 0 :(得分:6)

如果您只想更改应用程序的输入语言,请查看InputLanguage.CurrentInputLanguage

或者,如果您想更改系统默认输入语言,请使用SPI_SETDEFAULTINPUTLANG标志查看SystemParametersInfo函数。

关于时区,有TimeZoneInfo类来获取信息,但要设置它,您需要使用SetTimeZoneInformation函数。

答案 1 :(得分:4)

我知道这个话题很古老,但你是不是应该通过像“wpf switch keyboard”这样的搜索请求从谷歌来到这里(就像我一样) 你一定要尝试特殊的WPF类InputLanguageManager: http://msdn.microsoft.com/en-us/library/system.windows.input.inputlanguagemanager.aspx 特别要注意其附属的一个名为InputLanguage的属性。在大多数情况下,它就是你所需要的一切。

答案 2 :(得分:3)

您必须使用此功能:

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”。

答案 3 :(得分:0)

首先添加

using System.Globalization;

然后在InitializeComponent()之后写入;这段代码

        InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(Application.CurrentCulture);
        InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new CultureInfo("ar-EG"));