CefSharp WinForms — мерцание при загрузке страницы

#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-файлов с кодом, я не буду их открывать.