winforms 在chromiumwebbrowser中加载页面时,如何使用进度条显示页面加载状态,直到完成加载?

j8ag8udp  于 2023-03-13  发布在  其他
关注(0)|答案(1)|浏览(572)

有一个loadingstatechanged事件,但我不知道在它里面做什么?有一个属性:正在加载

e.IsLoading

但是我想要的是将进度条从0更新到100%,或者用进度条指示页面加载的其他东西。
我已经在设计器中有了一个进度条。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Weather
{
    public partial class GoogleMapsForm : Form
    {
        public GoogleMapsForm()
        {
            InitializeComponent();

            this.WindowState = FormWindowState.Maximized;
            chromiumWebBrowser1.LoadingStateChanged += ChromiumWebBrowser1_LoadingStateChanged;
            chromiumWebBrowser1.Load("D:\\Csharp Projects\\Weather\\map.html");
        }

        private void ChromiumWebBrowser1_LoadingStateChanged(object sender, CefSharp.LoadingStateChangedEventArgs e)
        {
           
        }

        private void GoogleMapsForm_Load(object sender, EventArgs e)
        {

        }
    }
}
ecfdbz9o

ecfdbz9o1#

由于浏览器和网页伺服器之间的通讯方式,我们不可能以百分比来给予载入进度。看看主流浏览器,你会发现没有一个浏览器使用进度条来追踪网页的载入状态。它们都使用一些动画来显示载入状态。
如果你想使用一个ProgressBar控件,将它的Style属性设置为“Marquee“,开始时隐藏它,只有当页面加载时才显示它。

private void ChromiumWebBrowser1_LoadingStateChanged(object sender, CefSharp.LoadingStateChangedEventArgs e)
{
    myProgressBar.Visible = e.IsLoading;
}

设置ProgressBarMarqueeAnimationSpeed属性以控制动画速度。

相关问题