From 6baa367ef544a3b83bc489b2d360e45c87f94a07 Mon Sep 17 00:00:00 2001 From: Solin Date: Tue, 20 Jan 2026 21:32:28 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=BD=AF=E4=BB=B6?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- IconGenerator.cs | 42 ++++++++++++++++++++++++++++++++++++++---- Properties/app.ico | Bin 0 -> 10971 bytes TimerApp.csproj | 1 + 3 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 Properties/app.ico diff --git a/IconGenerator.cs b/IconGenerator.cs index b09f2a6..0c4ea6f 100644 --- a/IconGenerator.cs +++ b/IconGenerator.cs @@ -93,23 +93,57 @@ namespace TimerApp int clockSize = size - margin * 2; Rectangle rect = new Rectangle(margin, margin, clockSize, clockSize); + // 定义轮廓颜色和宽度 + Color outlineColor = Color.FromArgb(64, 64, 64); + float mainWidth = Math.Max(2, size / 16f); + float outlineWidth = mainWidth + Math.Max(1, size / 32f); + float handWidth = Math.Max(2, size / 22f); + float handOutlineWidth = handWidth + Math.Max(1, size / 32f); + + // 1. 绘制耳朵 (先画轮廓) + using (Pen outlinePen = new Pen(outlineColor, Math.Max(1, size / 32f))) using (Brush earBrush = new SolidBrush(Color.White)) { + // 左耳 + g.DrawPie(outlinePen, 0, 0, size / 2, size / 2, 200, 50); g.FillPie(earBrush, 0, 0, size / 2, size / 2, 200, 50); + + // 右耳 + g.DrawPie(outlinePen, size / 2, 0, size / 2, size / 2, 290, 50); g.FillPie(earBrush, size / 2, 0, size / 2, size / 2, 290, 50); } - using (Pen pen = new Pen(Color.White, Math.Max(2, size / 16))) + // 2. 绘制表盘外圈 (先画轮廓) + using (Pen outlinePen = new Pen(outlineColor, outlineWidth)) + using (Pen pen = new Pen(Color.White, mainWidth)) + using (Brush bgBrush = new SolidBrush(Color.Black)) { + // 填充表盘背景,确保浅色模式下也能看清 + g.FillEllipse(bgBrush, rect); + g.DrawEllipse(outlinePen, rect); g.DrawEllipse(pen, rect); } + // 3. 绘制指针 (先画轮廓) Point center = new Point(size / 2, size / 2); - using (Pen handPen = new Pen(Color.LightGreen, Math.Max(2, size / 22))) + Point handEnd1 = new Point(center.X + Math.Max(2, size * 10 / 64), center.Y - Math.Max(2, size * 10 / 64)); + Point handEnd2 = new Point(center.X, center.Y - Math.Max(3, size * 18 / 64)); + + using (Pen outlinePen = new Pen(outlineColor, handOutlineWidth)) + using (Pen handPen = new Pen(Color.LightGreen, handWidth)) { + outlinePen.EndCap = LineCap.Round; + outlinePen.StartCap = LineCap.Round; handPen.EndCap = LineCap.Round; - g.DrawLine(handPen, center, new Point(center.X + Math.Max(2, size * 10 / 64), center.Y - Math.Max(2, size * 10 / 64))); - g.DrawLine(handPen, center, new Point(center.X, center.Y - Math.Max(3, size * 18 / 64))); + handPen.StartCap = LineCap.Round; + + // 指针1 + g.DrawLine(outlinePen, center, handEnd1); + g.DrawLine(handPen, center, handEnd1); + + // 指针2 + g.DrawLine(outlinePen, center, handEnd2); + g.DrawLine(handPen, center, handEnd2); } } } diff --git a/Properties/app.ico b/Properties/app.ico new file mode 100644 index 0000000000000000000000000000000000000000..a5e8b8b4f6392a6b42da37966df83ec769eb90ac GIT binary patch literal 10971 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 fjQm)4-19K7%&+sz^tvOjo&uEQ)#NHenable true enable + Properties\app.ico