我正在尝试为我的应用程序制作一个“便宜又愉快”的闪屏。(NET Framework 4.8 上的 WinForms 应用程序)
这个想法很简单:在加载数据时,我们显示 WebBrowser 元素,该元素 Navigate() 到一些预先准备好的 URL,并带有图片“等待,正在加载!”
但这就是问题所在。
加载数据时的这个铭文只是一张图片(其实是一个gif动画,这样用户才不会觉得无聊)
在我的浏览器中,此图像显示在屏幕中央:
但在应用程序中- 不,它显示在左上角,好像WebBrowser 控件(System.Windows.Forms.WebBrowser)不理解样式。
要在浏览器中显示的源 html:
<!DOCTYPE html>
<html>
<head>
</head>
<body style="min-height: 100vh;" bgcolor="red">
<div style="display: flex; justify-content: center; align-items: center; height: 100%; min-height: 100vh;">
<img src="BackgroundLoad.gif">
</div>
</body>
</html>
我如何在表单上显示浏览器:我只处理 Shown 事件,并将代码写入其中
WebBrowser wb = new WebBrowser();
Controls.Add(wb);
wb.Dock = DockStyle.Fill;
wb.Navigate(new Uri("https://junecat.ru/Storage/oth/BackgroundLoad.html"));
以防万一,这里是github 上项目的链接。
我不知何故不知道为什么 WebBrowser 会这样。你呢?

WebBrowser(Internet Explorer 11)不像display: flex普通的新浏览器那样支持。我不建议您使用此浏览器。但是如果你真的想要,那就是
CefSharp(github,在 NuGet 中可用)和WebView2(documentation),它们都可以在同一个 chrome 引擎上工作。如果您运行缓慢
PictureBox,请尝试启用表单缓冲。