CefSharp ChromiumWebBrowser控件不遵守InputLanguage.CurrentInputLa



使用CefSharp 75.1.142,我开发了一个C#Winforms应用程序。它有一个SplitContainersplitContainer1,顶部面板有一个ComboBoxcombobox1,底部面板有ChromiumWebBrowser控件。

我有英文和希腊语键盘布局的Windows7(默认为英文(。在初始化过程中,我将应用程序的输入语言更改为希腊语,并添加ChromiumWebBrowser控件,如下所示:

InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new System.Globalization.CultureInfo("el-gr"));
ChromiumWebBrowser browser = new ChromiumWebBrowser(comboBox1.SelectedValue.ToString());
this.splitContainer1.Panel2.Controls.Add(browser);

然而,虽然应用程序的输入语言发生了变化,但浏览器控件仍然具有我的系统的默认输入,即英语。如果我点击组合框,Windows7的语言栏显示希腊语,当我点击浏览器控件时,语言栏显示英语。

如何更改浏览器控件的输入语言?

我使用IsBrowserInitializedChanged事件解决了它,因为根据文档:

在基础CEF浏览器实例被调用后调用的事件创建。需要注意的是,此事件是在CEF UI上触发的线程,默认情况下与应用程序UI不同线

所以,我使用了:

browser.IsBrowserInitializedChanged += OnIsBrowserInitializedChanged;
private void OnIsBrowserInitializedChanged(object sender, EventArgs e)
{
InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new System.Globalization.CultureInfo("el-gr"));
}

相关内容

  • 没有找到相关文章

最新更新