序号标注可以增加实心形式的吗?

功能建议 · 105 次浏览
回复内容
小布丁的大布丁 2026-06-29 09:40
#1

我之前也是想要这个样式,于是找 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);
}
小布丁的大布丁 最后更新于 2026-06-29 09:42
ORYS 2026-06-29 10:47
#2

已经加好并且更新了, 可以重装动作试试看

回复主贴