Form1.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. using Microsoft.Web.WebView2.Core;
  2. namespace EdgeVoyager
  3. {
  4. public partial class Form1 : Form
  5. {
  6. int zoom = 100;
  7. public Form1()
  8. {
  9. InitializeComponent();
  10. InitializeAsync();
  11. }
  12. async void InitializeAsync()
  13. {
  14. await webView21.EnsureCoreWebView2Async(null);
  15. webView21.CoreWebView2.Navigate("https://cn.bing.com/?mkt=zh-CN");
  16. }
  17. private void back_button_Click(object sender, EventArgs e)
  18. {
  19. webView21.CoreWebView2.GoBack();
  20. }
  21. private void forward_button_Click(object sender, EventArgs e)
  22. {
  23. webView21.CoreWebView2.GoForward();
  24. }
  25. private void refresh_button_Click(object sender, EventArgs e)
  26. {
  27. webView21.CoreWebView2.Reload();
  28. }
  29. private void stop_button_Click(object sender, EventArgs e)
  30. {
  31. webView21.CoreWebView2.Stop();
  32. }
  33. private void search_button_Click(object sender, EventArgs e)
  34. {
  35. }
  36. private void webView21_NavigationStarting(object sender, CoreWebView2NavigationStartingEventArgs e)
  37. {
  38. int num = 0;
  39. string currentUrl = webView21.Source.ToString();
  40. if (!comboBox1.Items.Contains(currentUrl))
  41. {
  42. comboBox1.Items.Add(currentUrl);
  43. }
  44. comboBox1.Text = currentUrl;
  45. progressBar.Value = 0;
  46. progressLabel.Text = "0%";
  47. StatusLabel.Text = "开始导航到:" + currentUrl;
  48. if (num != 0)
  49. {
  50. Form1 newForm = new Form1();
  51. // 等待新窗口的WebView2控件初始化完成
  52. newForm.webView21.CoreWebView2InitializationCompleted += (s, args) =>
  53. {
  54. if (args.IsSuccess)
  55. {
  56. // 设置新窗口中WebView2控件的导航目标为当前要打开的URL
  57. newForm.webView21.CoreWebView2.Navigate(e.Uri);
  58. }
  59. else
  60. {
  61. // 初始化失败,可以进行相应的错误处理
  62. MessageBox.Show("WebView2初始化失败:" + args.InitializationException.Message);
  63. }
  64. };
  65. // 显示新窗口
  66. newForm.Show();
  67. // 取消当前的导航请求
  68. e.Cancel = true;
  69. }
  70. }
  71. private async void webView21_NavigationCompleted(object sender, CoreWebView2NavigationCompletedEventArgs e)
  72. {
  73. string currentUrl = webView21.Source.ToString();
  74. if (!comboBox1.Items.Contains(currentUrl))
  75. {
  76. comboBox1.Items.Add(currentUrl);
  77. }
  78. comboBox1.Text = currentUrl;
  79. progressBar.Value = 100;
  80. progressLabel.Text = "100%";
  81. StatusLabel.Text = "完成。";
  82. string title = await webView21.CoreWebView2.ExecuteScriptAsync("document.title;");
  83. this.Text = "LYKNS EdgeVoyager:" + title.Trim('"');
  84. }
  85. private void comboBox1_KeyDown(object sender, KeyEventArgs e)
  86. {
  87. if (e.KeyCode == Keys.Enter)
  88. {
  89. string url = comboBox1.Text;
  90. if (Uri.IsWellFormedUriString(url, UriKind.Absolute))
  91. {
  92. webView21.CoreWebView2.Navigate(url);
  93. }
  94. else
  95. {
  96. MessageBox.Show("请输入有效的网址", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  97. }
  98. }
  99. }
  100. private void 退出XToolStripMenuItem_Click(object sender, EventArgs e)
  101. {
  102. Environment.Exit(0);
  103. }
  104. private void webView21_ContentLoading(object sender, CoreWebView2ContentLoadingEventArgs e)
  105. {
  106. progressBar.Value = 50; // 假设加载内容时进度为50%
  107. progressLabel.Text = "50%";
  108. StatusLabel.Text = "内容开始加载";
  109. }
  110. private async void SetZoomLevel(double zoomLevel)
  111. {
  112. await webView21.CoreWebView2.ExecuteScriptAsync($"document.body.style.zoom = '{zoomLevel}%'");
  113. }
  114. private void toolStripSplitButton1_ButtonClick(object sender, EventArgs e)
  115. {
  116. SetZoomLevel(100);
  117. toolStripMenuItem3.Enabled = true;
  118. }
  119. private void toolStripMenuItem2_Click(object sender, EventArgs e)
  120. {
  121. zoom = zoom + 25;
  122. SetZoomLevel(zoom);
  123. toolStripMenuItem3.Enabled = true;
  124. }
  125. private void toolStripMenuItem3_Click(object sender, EventArgs e)
  126. {
  127. zoom = zoom - 25;
  128. SetZoomLevel(zoom);
  129. if (zoom == 25)
  130. toolStripMenuItem3.Enabled = false;
  131. }
  132. private void 刷新RToolStripMenuItem_Click(object sender, EventArgs e)
  133. {
  134. webView21.CoreWebView2.Reload();
  135. }
  136. private void 停止TToolStripMenuItem_Click(object sender, EventArgs e)
  137. {
  138. webView21.CoreWebView2.Stop();
  139. }
  140. private void 前进QToolStripMenuItem_Click(object sender, EventArgs e)
  141. {
  142. webView21.CoreWebView2.GoForward();
  143. }
  144. private void 后退WToolStripMenuItem_Click(object sender, EventArgs e)
  145. {
  146. webView21.CoreWebView2.GoBack();
  147. }
  148. }
  149. }