#c# #winforms #cefsharp
#c# #winforms #cefsharp
Вопрос:
Я использую CefSharp.WinForms версии 84.4.10.
Мое приложение — это программа запуска игр wip для игр, которые я создаю. Скриншот лаунчера. Существует основная форма, которая загружает и выгружает дочерние формы при нажатии кнопок. Дочерние формы содержат панель, растянутую для заполнения всей дочерней формы. CefSharp инициализируется на панели. Вот код, который это делает:
public CefSharp.WinForms.ChromiumWebBrowser browser;
private void Changelog_Load(object sender, EventArgs e)
{
browser = new CefSharp.WinForms.ChromiumWebBrowser("https://aerial-knightstudios.com/store/akslauncher/")
{
Dock = DockStyle.Fill,
Size = new Size(600, 600),
Location = new Point(200, 200),
};
this.panelChangelogPage.Controls.Add(browser);
}
Когда дочерняя форма включена, появляется черное поле, которое заполняет половину формы, затем оно мерцает белым, после чего загружается веб-страница.
До сих пор я пробовал следующее:
Я включил двойную буферизацию, добавив DoubleBuffered = true;
inside public FormMain()
, и это сделало мерцание менее интенсивным, но оно все еще сильно мерцает.
Я также изменил [STAThread]
в program.cs на [MTAThread]
. Это тоже помогло, но очень незначительно.
Любые решения приветствуются.
Комментарии:
1. Быстро ли переключается фокус между формами? Маловероятно, что это на самом деле мерцание
2. @amaitland Нет, это не так. Я думаю, что это кажется мерцающим из-за того, насколько кратким появляется черный ящик.
3. Вы тестировали с другим оборудованием? Пожалуйста, разветвляйте github.com/cefsharp/CefSharp.MinimalExample и приведите пример, который воспроизводит проблему, отправьте свои изменения на GitHub, сделайте их минимальными, ровно настолько, чтобы воспроизвести проблему. Сведите их в один коммит. Нет zip-файлов с кодом, я не буду их открывать.