CefSharp: проблема в том, что экранная клавиатура на сенсорном экране остается над текстовыми полями и препятствует отображению записей - PullRequest
0 голосов
/ 05 ноября 2019

Когда я нажимаю текстовое поле для ввода данных на сенсорном экране, появляется экранная клавиатура, и экран плавно перемещается вверх, и появляются записи. Но когда мы нажимаем на другое текстовое поле, страница возвращается в исходное состояние, и записи остаются позади, поэтому мы не видим, что мы ввели. Это не проблема, когда мы делаем это, закрывая экранную клавиатуру перед каждым щелчком текстового поля, и оно плавно перемещается вверх.

Примечание 1: Версия CEF: v65.0.1.0.

Примечание 2: Windows 10 Enterprise 2016 LTSB (версия: 1607, сборка ОС: 14393.3085).

Примечание 3: Я переключился с v75 на v65, потому что клавиатура была закрыта через несколько секунд после нажатия на текстовое поле. Я извиняюсь за мой плохой английский.

Примечание 4: Код:

var settings = new CefSettings();
settings.CefCommandLineArgs.Add("no-proxy-server", "1");
settings.CefCommandLineArgs.Add("touch-events", "enabled");
settings.CefCommandLineArgs.Add("disable-usb-keyboard-detect", "1"); 
settings.CefCommandLineArgs.Add("enable-media-stream", "1");
settings.MultiThreadedMessageLoop = true;

var boundObject = new BoundObject();

Cef.Initialize(settings, performDependencyCheck: true, browserProcessHandler: null);

Control.CheckForIllegalCrossThreadCalls = false;
CefSharpSettings.LegacyJavascriptBindingEnabled = true;
chromiumWebBrowser1.MenuHandler = new MyCustomMenuHandler();
var eventObject = new ScriptedMethodsBoundObject();
eventObject.EventArrived += OnJavascriptEventArrived;
chromiumWebBrowser1.RegisterJsObject("boundEvent", eventObject, options: BindingOptions.DefaultBinder);
...