我之前也是想要这个样式,于是找 Gemini 改了下,你想试试的话替换这段代码就行:
else if (a.Group == ToolGroup.Stamp){ float fs = a.FontSize > 0 ? a.FontSize : 24f; float r = fs * 0.6f; float cx = a.Start.X, cy = a.Start.Y;
// 1. 将 DrawEllipse(空心描边) 改为 FillEllipse(实心背景填充) g.FillEllipse(GetCachedBrush(c), cx - r, cy - r, r * 2, r * 2);
string num = a.StampNum.ToString();
// 2. 第三个参数 true 本身就代表 Bold(加粗),保持不变即可 Font f = GetFont("Arial", fs * 0.55f, true, false, false); SizeF sz = g.MeasureString(num, f);
// 3. 将绘制文字的画笔从 GetCachedBrush(c) 改为纯白 Brushes.White // 利用感知明度公式判断背景色是否为“亮色”(阈值设为 160) bool isLightBg = (0.299 * c.R + 0.587 * c.G + 0.114 * c.B) > 160; Brush textBrush = isLightBg ? Brushes.Black : Brushes.White; g.DrawString(num, f, textBrush, cx - sz.Width / 2, cy - sz.Height / 2 + sz.Height * 0.1f);}
已经加好并且更新了, 可以重装动作试试看