Browse Source

完善起始页、完善menustrip功能

CaptB 4 months ago
parent
commit
869234bccd
2 changed files with 155 additions and 48 deletions
  1. 19 22
      Form1.Designer.cs
  2. 136 26
      Form1.cs

+ 19 - 22
Form1.Designer.cs

@@ -39,7 +39,6 @@
             打开OToolStripMenuItem = new ToolStripMenuItem();
             toolStripSeparator = new ToolStripSeparator();
             保存SToolStripMenuItem = new ToolStripMenuItem();
-            另存为AToolStripMenuItem = new ToolStripMenuItem();
             toolStripSeparator1 = new ToolStripSeparator();
             打印PToolStripMenuItem = new ToolStripMenuItem();
             打印预览VToolStripMenuItem = new ToolStripMenuItem();
@@ -239,7 +238,7 @@
             // 
             // 文件FToolStripMenuItem
             // 
-            文件FToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { 新建NToolStripMenuItem, 打开OToolStripMenuItem, toolStripSeparator, 保存SToolStripMenuItem, 另存为AToolStripMenuItem, toolStripSeparator1, 打印PToolStripMenuItem, 打印预览VToolStripMenuItem, 发送SToolStripMenuItem, toolStripSeparator6, 属性PToolStripMenuItem, toolStripSeparator2, 退出XToolStripMenuItem });
+            文件FToolStripMenuItem.DropDownItems.AddRange(new ToolStripItem[] { 新建NToolStripMenuItem, 打开OToolStripMenuItem, toolStripSeparator, 保存SToolStripMenuItem, toolStripSeparator1, 打印PToolStripMenuItem, 打印预览VToolStripMenuItem, 发送SToolStripMenuItem, toolStripSeparator6, 属性PToolStripMenuItem, toolStripSeparator2, 退出XToolStripMenuItem });
             文件FToolStripMenuItem.Name = "文件FToolStripMenuItem";
             文件FToolStripMenuItem.Size = new Size(58, 21);
             文件FToolStripMenuItem.Text = "文件(&F)";
@@ -250,8 +249,9 @@
             新建NToolStripMenuItem.ImageTransparentColor = Color.Magenta;
             新建NToolStripMenuItem.Name = "新建NToolStripMenuItem";
             新建NToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.N;
-            新建NToolStripMenuItem.Size = new Size(165, 22);
+            新建NToolStripMenuItem.Size = new Size(180, 22);
             新建NToolStripMenuItem.Text = "新建(&N)";
+            新建NToolStripMenuItem.Click += 新建NToolStripMenuItem_Click;
             // 
             // 打开OToolStripMenuItem
             // 
@@ -259,34 +259,30 @@
             打开OToolStripMenuItem.ImageTransparentColor = Color.Magenta;
             打开OToolStripMenuItem.Name = "打开OToolStripMenuItem";
             打开OToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.O;
-            打开OToolStripMenuItem.Size = new Size(165, 22);
+            打开OToolStripMenuItem.Size = new Size(180, 22);
             打开OToolStripMenuItem.Text = "打开(&O)";
+            打开OToolStripMenuItem.Click += 打开OToolStripMenuItem_Click;
             // 
             // toolStripSeparator
             // 
             toolStripSeparator.Name = "toolStripSeparator";
-            toolStripSeparator.Size = new Size(162, 6);
+            toolStripSeparator.Size = new Size(177, 6);
             // 
             // 保存SToolStripMenuItem
             // 
+            保存SToolStripMenuItem.Enabled = false;
             保存SToolStripMenuItem.Image = Properties.Resources.save_16px;
             保存SToolStripMenuItem.ImageTransparentColor = Color.Magenta;
             保存SToolStripMenuItem.Name = "保存SToolStripMenuItem";
             保存SToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.S;
-            保存SToolStripMenuItem.Size = new Size(165, 22);
+            保存SToolStripMenuItem.Size = new Size(180, 22);
             保存SToolStripMenuItem.Text = "保存(&S)";
-            // 
-            // 另存为AToolStripMenuItem
-            // 
-            另存为AToolStripMenuItem.Image = Properties.Resources.save_all_16px;
-            另存为AToolStripMenuItem.Name = "另存为AToolStripMenuItem";
-            另存为AToolStripMenuItem.Size = new Size(165, 22);
-            另存为AToolStripMenuItem.Text = "另存为(&A)";
+            保存SToolStripMenuItem.Click += 保存SToolStripMenuItem_ClickAsync;
             // 
             // toolStripSeparator1
             // 
             toolStripSeparator1.Name = "toolStripSeparator1";
-            toolStripSeparator1.Size = new Size(162, 6);
+            toolStripSeparator1.Size = new Size(177, 6);
             // 
             // 打印PToolStripMenuItem
             // 
@@ -294,46 +290,48 @@
             打印PToolStripMenuItem.ImageTransparentColor = Color.Magenta;
             打印PToolStripMenuItem.Name = "打印PToolStripMenuItem";
             打印PToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.P;
-            打印PToolStripMenuItem.Size = new Size(165, 22);
+            打印PToolStripMenuItem.Size = new Size(180, 22);
             打印PToolStripMenuItem.Text = "打印(&P)";
+            打印PToolStripMenuItem.Click += 打印PToolStripMenuItem_Click;
             // 
             // 打印预览VToolStripMenuItem
             // 
             打印预览VToolStripMenuItem.Image = Properties.Resources.view_16px;
             打印预览VToolStripMenuItem.ImageTransparentColor = Color.Magenta;
             打印预览VToolStripMenuItem.Name = "打印预览VToolStripMenuItem";
-            打印预览VToolStripMenuItem.Size = new Size(165, 22);
+            打印预览VToolStripMenuItem.Size = new Size(180, 22);
             打印预览VToolStripMenuItem.Text = "打印预览(&V)";
+            打印预览VToolStripMenuItem.Click += 打印预览VToolStripMenuItem_Click;
             // 
             // 发送SToolStripMenuItem
             // 
             发送SToolStripMenuItem.Image = Properties.Resources.send_16px;
             发送SToolStripMenuItem.Name = "发送SToolStripMenuItem";
-            发送SToolStripMenuItem.Size = new Size(165, 22);
+            发送SToolStripMenuItem.Size = new Size(180, 22);
             发送SToolStripMenuItem.Text = "发送(&S)";
             // 
             // toolStripSeparator6
             // 
             toolStripSeparator6.Name = "toolStripSeparator6";
-            toolStripSeparator6.Size = new Size(162, 6);
+            toolStripSeparator6.Size = new Size(177, 6);
             // 
             // 属性PToolStripMenuItem
             // 
             属性PToolStripMenuItem.Image = Properties.Resources.info_16px;
             属性PToolStripMenuItem.Name = "属性PToolStripMenuItem";
-            属性PToolStripMenuItem.Size = new Size(165, 22);
+            属性PToolStripMenuItem.Size = new Size(180, 22);
             属性PToolStripMenuItem.Text = "属性(&P)";
             // 
             // toolStripSeparator2
             // 
             toolStripSeparator2.Name = "toolStripSeparator2";
-            toolStripSeparator2.Size = new Size(162, 6);
+            toolStripSeparator2.Size = new Size(177, 6);
             // 
             // 退出XToolStripMenuItem
             // 
             退出XToolStripMenuItem.Image = Properties.Resources.cancel_16px;
             退出XToolStripMenuItem.Name = "退出XToolStripMenuItem";
-            退出XToolStripMenuItem.Size = new Size(165, 22);
+            退出XToolStripMenuItem.Size = new Size(180, 22);
             退出XToolStripMenuItem.Text = "退出(&X)";
             退出XToolStripMenuItem.Click += 退出XToolStripMenuItem_Click;
             // 
@@ -619,7 +617,6 @@
         private ToolStripMenuItem 打开OToolStripMenuItem;
         private ToolStripSeparator toolStripSeparator;
         private ToolStripMenuItem 保存SToolStripMenuItem;
-        private ToolStripMenuItem 另存为AToolStripMenuItem;
         private ToolStripSeparator toolStripSeparator1;
         private ToolStripMenuItem 打印PToolStripMenuItem;
         private ToolStripMenuItem 打印预览VToolStripMenuItem;

+ 136 - 26
Form1.cs

@@ -1,5 +1,8 @@
+using System.Reflection.Metadata;
 using System.Web;
 using Microsoft.Web.WebView2.Core;
+using Microsoft.Web.WebView2.Core;
+using System.Windows.Forms;
 
 namespace EdgeVoyager
 {
@@ -40,14 +43,14 @@ namespace EdgeVoyager
         body {
             margin: 0;
             padding: 0;
-            background-image: url('https://bing.img.run/uhd.php');
+            background-image: url('https://bing.img.run/uhd.php'); 
             background-size: cover;
             background-repeat: no-repeat;
             background-attachment: fixed;
             font-family: Arial, sans-serif;
         }
         .header {
-            background-color: rgba(255, 255, 255, 0.8); /* 磨砂玻璃效果 */
+            background-color: rgba(255, 255, 255, 0.8);
             backdrop-filter: blur(10px);
             padding: 10px 20px;
             display: flex;
@@ -72,52 +75,62 @@ namespace EdgeVoyager
         .welcome-text {
             text-align: center;
             margin: 20px 0;
-            font-size: 36px; /* 加大字体 */
-            font-weight: bold; /* 加粗字体 */
-            color: #0078D4; /* 颜色设置为0078D4 */
+            font-size: 36px;
+            font-weight: bold;
+            color: #0078D4;
         }
         .search-container {
             display: flex;
             justify-content: center;
             align-items: center;
             margin-top: 20px;
-            border-radius: 15px; /* 搜索条圆角 */
-            overflow: hidden; /* 隐藏溢出部分,确保圆角效果 */
+            border-radius: 15px;
+            overflow: hidden;
         }
         .search-input {
-            width: 70vw; /* 搜索框宽度为视口宽度的85% */
-            max-width: 1000px; /* 搜索框最大宽度不超过1000px */
+            width: 70vw;
+            max-width: 1000px;
             padding: 10px;
             font-size: 16px;
             border: none;
-            border-radius: 15px 0 0 15px; /* 搜索框左圆角 */
-            height: 20px; /* 设置高度 */
+            border-radius: 15px 0 0 15px;
+            height: 20px;
         }
         .search-button {
             padding: 10px 20px;
+            width: 80px;
             font-size: 16px;
             cursor: pointer;
             border: none;
             background-color: #0078D4;
             color: white;
-            border-radius: 0 15px 15px 0; /* 搜索按钮右圆角 */
-            height: 40px; /* 设置高度 */
+            border-radius: 0 15px 15px 0;
+            height: 40px;
+        }
+        .search-engine-select {
+            margin-left: 0px;
+            padding: 10px;
+            font-size: 16px;
+            border: none;
+            border-radius: 0px;
+            background-color: #f2f2f2;
+            cursor: pointer;
         }
         .acrylic-panel {
-            background-color: rgba(255, 255, 255, 0.8); /* 磨砂玻璃效果 */
+            background-color: rgba(255, 255, 255, 0.8);
             backdrop-filter: blur(10px);
             padding: 20px;
             border-radius: 8px;
             box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
             margin: 20px 0;
-            width: 90vw; /* 面板宽度为视口宽度的90% */
+            width: 90vw;
             margin-left: auto;
             margin-right: auto;
-            max-width: 1200px; /* 面板最大宽度不超过1200px */
+            max-width: 1200px;
         }
         @media (max-width: 600px) {
             .search-button {
-                padding: 8px 16px; /* 在小屏幕设备上调整按钮内边距 */
+                padding: 8px 16px;
             }
         }
     </style>
@@ -127,29 +140,60 @@ namespace EdgeVoyager
         <img src=""https://www.lykns.com.cn/wp-content/uploads/2025/01/pinwheel_48px.png"" alt=""Logo"" class=""logo"">
         <span style=""font-size: 24px; color: #333; margin-left: 0;"">LYKNS </span>
         <div class=""nav-links"">
-            <a href=""https://www.lykns.com.cn"" class=""nav-item""> 主站</a>
+            <a href=""https://www.lykns.com.cn"" class=""nav-item"">主站</a>
             <a href=""https://its.lykns.com.cn"" class=""nav-item"">云服务</a>
             <a href=""https://dev.lykns.com.cn"" class=""nav-item"">Git 服务</a>
             <a href=""https://survey.lykns.com.cn"" class=""nav-item"">问卷考试系统</a>
         </div>
     </div>
     <div class=""acrylic-panel"">
+        <div style=""text-align:center;"">
+            <?xml version=""1.0"" encoding=""utf-8""?>
+            <svg xmlns=""http://www.w3.org/2000/svg"" viewBox=""0 0 48 48"" width=""128"" height=""128"">
+              <linearGradient id=""_EnvA6UXZqPqJP5nSvD1Ka"" x1=""12.209"" x2=""34.197"" y1=""42.462"" y2=""7.83"" gradientTransform=""matrix(1 0 0 -1 0 47.89)"" gradientUnits=""userSpaceOnUse"">
+                <stop offset=""0"" stop-color=""#737b80"" />
+                <stop offset="".473"" stop-color=""#686f74"" />
+                <stop offset=""1"" stop-color=""#575c61"" />
+              </linearGradient>
+              <path fill=""url(#_EnvA6UXZqPqJP5nSvD1Ka)"" d=""M44,24c0,11.044-8.956,20-20,20S4,35.044,4,24S12.956,4,24,4S44,12.956,44,24z"" />
+              <linearGradient id=""_EnvA6UXZqPqJP5nSvD1Kb"" x1=""16.956"" x2=""31.044"" y1=""37.138"" y2=""10.642"" gradientTransform=""matrix(1 0 0 -1 0 47.89)"" gradientUnits=""userSpaceOnUse"">
+                <stop offset=""0"" stop-color=""#ccc"" />
+                <stop offset="".758"" stop-color=""#f2f2f2"" />
+                <stop offset=""1"" stop-color=""#fff"" />
+              </linearGradient>
+              <path fill=""url(#_EnvA6UXZqPqJP5nSvD1Kb)"" d=""M39,24c0,8.287-6.713,15-15,15S9,32.287,9,24S15.713,9,24,9S39,15.713,39,24z"" />
+              <linearGradient id=""_EnvA6UXZqPqJP5nSvD1Kc"" x1=""19.774"" x2=""28.226"" y1=""31.838"" y2=""15.942"" gradientTransform=""matrix(1 0 0 -1 0 47.89)"" gradientUnits=""userSpaceOnUse"">
+                <stop offset=""0"" stop-color=""#21ad64"" />
+                <stop offset=""1"" stop-color=""#088242"" />
+              </linearGradient>
+              <circle cx=""24"" cy=""24"" r=""9"" fill=""url(#_EnvA6UXZqPqJP5nSvD1Kc)"" />
+            </svg>
+        </div>
         <div class=""welcome-text"">
-            欢迎使用LYKNS EdgeVoyager!
+            欢迎使用 LYKNS EdgeVoyager!
         </div>
         <div class=""search-container"">
             <input type=""text"" id=""search-input"" class=""search-input"" placeholder=""搜索..."">
+            <select id=""search-engine-select"" class=""search-engine-select"">
+                <option value=""bing"">Bing</option>
+                <option value=""baidu"">百度</option>
+                <option value=""google"">Google</option>
+            </select>
             <button onclick=""search()"" class=""search-button"">搜索</button>
         </div>
     </div>
     <script>
         function search() {
             var query = document.getElementById('search-input').value;
-            window.location.href = 'https://cn.bing.com/search?q=' + encodeURIComponent(query);
-        }
-    </script>
-</body>
-</html>";
+            var engine = document.getElementById('search-engine-select').value;
+            var url = '';
+            if (engine === 'bing') {
+                url = 'https://www.bing.com/search?q=' + encodeURIComponent(query);
+            } else if (engine === 'baidu') {
+                url = 'https://www.baidu.com/s?wd=' + encodeURIComponent(query);
+            } else if (engine === 'google') {
+                url = 'https://www.google.com/search?q=' + encodeURIComponent(query);
+            }";
 
                 webView21.CoreWebView2.NavigateToString(htmlString);
                 Settings1.Default.firstwindow = false;
@@ -181,8 +225,17 @@ namespace EdgeVoyager
         {
             if (textBox1.Text.Length > 0)
             {
-                webView21.CoreWebView2.Navigate("https://cn.bing.com/search?q=" + textBox1.Text);
-                webView21.CoreWebView2.Profile.PreferredColorScheme = CoreWebView2PreferredColorScheme.Light;
+                if (comboBox1.Text != "about:blank")
+                {
+                    Form1 newForm = new Form1();
+                    newForm.webView21.Source = new Uri("https://cn.bing.com/search?q=" + textBox1.Text);
+                    newForm.Show();
+                }
+                else
+                {
+                    webView21.CoreWebView2.Navigate("https://cn.bing.com/search?q=" + textBox1.Text);
+                    webView21.CoreWebView2.Profile.PreferredColorScheme = CoreWebView2PreferredColorScheme.Light;
+                }
             }
         }
 
@@ -349,5 +402,62 @@ namespace EdgeVoyager
             AboutBox1 aboutBox1 = new AboutBox1();
             aboutBox1.ShowDialog();
         }
+
+        private void 新建NToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            Settings1.Default.firstwindow = true;
+            Settings1.Default.Save();
+            Form1 newForm = new Form1();
+            newForm.Show();
+        }
+
+        private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            OpenFileDialog openFileDialog = new OpenFileDialog();
+            openFileDialog.Filter = "网页文件 (*.html;*.htm)|*.html;*.htm|可缩放矢量图形文件 (*.svg)|*.svg|所有文件 (*.*)|*.*"; // 设置文件筛选器[^5^]
+            if (openFileDialog.ShowDialog() == DialogResult.OK)
+            {
+                string filePath = openFileDialog.FileName;
+                Form1 newForm = new Form1();
+                newForm.webView21.Source = new Uri("file:///" + filePath);
+                newForm.Show();
+            }
+        }
+
+        private async void 保存SToolStripMenuItem_ClickAsync(object sender, EventArgs e)
+        {
+        }
+
+        private async void 打印PToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            string title = webView21.CoreWebView2.DocumentTitle;
+            try
+            {
+                // 使用默认打印机和页面设置打印当前网页
+                // 传递null作为PrintSettings参数,将使用默认打印设置
+                CoreWebView2PrintStatus printStatus = await webView21.CoreWebView2.PrintAsync(null);
+                if (printStatus == CoreWebView2PrintStatus.Succeeded)
+                {
+                    MessageBox.Show(this, "打印 " + title + " 文档到打印机成功", "打印到默认打印机");
+                }
+                else if (printStatus == CoreWebView2PrintStatus.PrinterUnavailable)
+                {
+                    MessageBox.Show(this, "打印机不可用,离线或错误状态", "打印到默认打印机");
+                }
+                else
+                {
+                    MessageBox.Show(this, "打印 " + title + " 文档到打印机失败", "打印到默认打印机");
+                }
+            }
+            catch (Exception)
+            {
+                MessageBox.Show(this, "打印 " + title + " 文档已在进行中", "打印到默认打印机");
+            }
+        }
+
+        private void 打印预览VToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            webView21.CoreWebView2.ShowPrintUI();
+        }
     }
 }