using Microsoft.Web.WebView2.Core; namespace EdgeVoyager { public partial class Form1 : Form { int zoom = 100; public Form1() { InitializeComponent(); InitializeAsync(); } async void InitializeAsync() { await webView21.EnsureCoreWebView2Async(null); webView21.CoreWebView2.Navigate("https://cn.bing.com/?mkt=zh-CN"); } private void back_button_Click(object sender, EventArgs e) { webView21.CoreWebView2.GoBack(); } private void forward_button_Click(object sender, EventArgs e) { webView21.CoreWebView2.GoForward(); } private void refresh_button_Click(object sender, EventArgs e) { webView21.CoreWebView2.Reload(); } private void stop_button_Click(object sender, EventArgs e) { webView21.CoreWebView2.Stop(); } private void search_button_Click(object sender, EventArgs e) { } private void webView21_NavigationStarting(object sender, CoreWebView2NavigationStartingEventArgs e) { int num = 0; string currentUrl = webView21.Source.ToString(); if (!comboBox1.Items.Contains(currentUrl)) { comboBox1.Items.Add(currentUrl); } comboBox1.Text = currentUrl; progressBar.Value = 0; progressLabel.Text = "0%"; StatusLabel.Text = "开始导航到:" + currentUrl; if (num != 0) { Form1 newForm = new Form1(); // 等待新窗口的WebView2控件初始化完成 newForm.webView21.CoreWebView2InitializationCompleted += (s, args) => { if (args.IsSuccess) { // 设置新窗口中WebView2控件的导航目标为当前要打开的URL newForm.webView21.CoreWebView2.Navigate(e.Uri); } else { // 初始化失败,可以进行相应的错误处理 MessageBox.Show("WebView2初始化失败:" + args.InitializationException.Message); } }; // 显示新窗口 newForm.Show(); // 取消当前的导航请求 e.Cancel = true; } } private async void webView21_NavigationCompleted(object sender, CoreWebView2NavigationCompletedEventArgs e) { string currentUrl = webView21.Source.ToString(); if (!comboBox1.Items.Contains(currentUrl)) { comboBox1.Items.Add(currentUrl); } comboBox1.Text = currentUrl; progressBar.Value = 100; progressLabel.Text = "100%"; StatusLabel.Text = "完成。"; string title = await webView21.CoreWebView2.ExecuteScriptAsync("document.title;"); this.Text = "LYKNS EdgeVoyager:" + title.Trim('"'); } private void comboBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { string url = comboBox1.Text; if (Uri.IsWellFormedUriString(url, UriKind.Absolute)) { webView21.CoreWebView2.Navigate(url); } else { MessageBox.Show("请输入有效的网址", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void 退出XToolStripMenuItem_Click(object sender, EventArgs e) { Environment.Exit(0); } private void webView21_ContentLoading(object sender, CoreWebView2ContentLoadingEventArgs e) { progressBar.Value = 50; // 假设加载内容时进度为50% progressLabel.Text = "50%"; StatusLabel.Text = "内容开始加载"; } private async void SetZoomLevel(double zoomLevel) { await webView21.CoreWebView2.ExecuteScriptAsync($"document.body.style.zoom = '{zoomLevel}%'"); } private void toolStripSplitButton1_ButtonClick(object sender, EventArgs e) { SetZoomLevel(100); toolStripMenuItem3.Enabled = true; } private void toolStripMenuItem2_Click(object sender, EventArgs e) { zoom = zoom + 25; SetZoomLevel(zoom); toolStripMenuItem3.Enabled = true; } private void toolStripMenuItem3_Click(object sender, EventArgs e) { zoom = zoom - 25; SetZoomLevel(zoom); if (zoom == 25) toolStripMenuItem3.Enabled = false; } private void 刷新RToolStripMenuItem_Click(object sender, EventArgs e) { webView21.CoreWebView2.Reload(); } private void 停止TToolStripMenuItem_Click(object sender, EventArgs e) { webView21.CoreWebView2.Stop(); } private void 前进QToolStripMenuItem_Click(object sender, EventArgs e) { webView21.CoreWebView2.GoForward(); } private void 后退WToolStripMenuItem_Click(object sender, EventArgs e) { webView21.CoreWebView2.GoBack(); } } }