gpt4 book ai didi

c# - Graphics.DrawString() 的中心文本输出

转载 作者:IT王子 更新时间:2023-10-29 03:47:39 26 4
gpt4 key购买 nike

我正在使用 .NETCF (Windows Mobile) Graphics 类和 DrawString() 方法将单个字符呈现到屏幕上。

问题是我似乎无法将其正确居中。无论我为字符串渲染位置的 Y 坐标设置什么,它总是低于该值,并且文本大小越大,Y 偏移量越大。

例如,在文本大小为 12 时,偏移量约为 4,但在 32 时偏移量约为 10。

我希望角色垂直占据其绘制矩形的大部分并水平居中。这是我的基本代码。 this 引用正在绘制的用户控件。

Graphics g = this.CreateGraphics();

float padx = ((float)this.Size.Width) * (0.05F);
float pady = ((float)this.Size.Height) * (0.05F);

float width = ((float)this.Size.Width) - 2 * padx;
float height = ((float)this.Size.Height) - 2 * pady;

float emSize = height;

g.DrawString(letter, new Font(FontFamily.GenericSansSerif, emSize, FontStyle.Regular),
new SolidBrush(Color.Black), padx, pady);

是的,我知道我可以使用标签控件来设置居中,但实际上我确实需要使用 Graphics 类手动执行此操作。

最佳答案

我想为 StringFormat 对象再投一票。您可以简单地使用它来指定“center, center”,文本将在提供的矩形或点的中央绘制:

StringFormat format = new StringFormat();
format.LineAlignment = StringAlignment.Center;
format.Alignment = StringAlignment.Center;

但是在 CF 中存在一个问题。如果您对这两个值都使用中心,那么它会关闭 TextWrapping。不知道为什么会这样,这似乎是 CF 的错误。

关于c# - Graphics.DrawString() 的中心文本输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7991/

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