CefSharp ChromiumWebBrowser控件未遵循InputLanguage.CurrentInputLanguage属性

问题描述 投票:1回答:1

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

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

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

但是,虽然应用程序的输入语言已更改,但浏览器控件仍继续使用我的系统的默认输入,即英语。如果单击组合框,则Windows 7的语言栏将显示希腊语,而当我单击浏览器控件时,语言栏将显示英语。

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

c# winforms cefsharp chromium-embedded
1个回答
1
投票

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

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

所以,我用过:

browser.IsBrowserInitializedChanged += OnIsBrowserInitializedChanged;
private void OnIsBrowserInitializedChanged(object sender, EventArgs e)
{
  InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(new System.Globalization.CultureInfo("el-gr"));
}
© www.soinside.com 2019 - 2024. All rights reserved.