gpt4 book ai didi

C# 窗体。在矩形内准确地居中绘制文本

转载 作者:行者123 更新时间:2023-11-30 23:23:18 25 4
gpt4 key购买 nike

我想做的是在一个圆圈内画一个数字,使其在垂直和水平方向都居中。我使用相同的矩形结构绘制圆和文本字符串,并使用中心进行水平和垂直对齐。但是,正如您从图像中看到的那样,我在白色圆圈上画了一条水平线,文本将其基线居中对齐,我的眼睛显示它在水平方向上略微向左对齐。

我尝试通过将 string.height/2 添加到矩形的顶部以将其向下移动 1/2 高度来进行伪造,但它仍然不正确。 (我调整了字体大小,以便根据计数器中的位数将数字放入框中)

请问我怎样才能正确地做到这一点?

var rect = new Rectangle(bmpWidth - maxCircleDiameter, bmpHeight - maxCircleDiameter, maxCircleDiameter, maxCircleDiameter);
g.FillEllipse(Brushes.White, rect);

using (var format = NewClassFactory.GetFormat(StringAlignment.Center, StringAlignment.Center, StringTrimming.Character))
g.DrawString(toDisplay, newFont, Brushes.Black, rect, format);

enter image description here

最佳答案

您可以使用 TextRenderer.DrawText在矩形边界内绘制文本,使用颜色和字体并指定不同的文本格式标志:

var rect = new Rectangle(10, 10, 32, 32);
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
e.Graphics.FillEllipse(Brushes.White, rect);
TextRenderer.DrawText(e.Graphics, "100", this.Font, rect, Color.Black,
TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter);

关于C# 窗体。在矩形内准确地居中绘制文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38420331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com