drawstring 文本居中_c# – 使用DrawString将单个角色居中

我已经尝试了所有的建议的方式来居中文本,但我似乎无法得到我想要的,而中心的个性效果.

我有一个矩形.在那个矩形中,我用DrawEllipse绘制一个圆圈.现在我想使用相同的矩形和DrawString在圆圈内绘制一个单个字符,使其完美居中.

这是我的基本代码:

StringFormat stringFormat = new StringFormat();

stringFormat.Alignment = StringAlignment.Center;

stringFormat.LineAlignment = StringAlignment.Center;

using (Graphics g = Graphics.FromImage(xImage))

{

g.SmoothingMode = SmoothingMode.AntiAlias;

g.TextRenderingHint = TextRenderingHint.AntiAlias;

g.CompositingQuality = CompositingQuality.HighQuality;

g.InterpolationMode = InterpolationMode.HighQualityBicubic;

g.PixelOffsetMode = PixelOffsetMode.HighQuality;

g.FillEllipse(fillBrush, imageRect.X, imageRect.Y, imageRect.Width - 1, imageRect.Height - 1);

g.DrawString(Text, font, Brushes.White, imageRect, stringFormat);

}

文本水平居中……但它没有正确地居中.使用对称字符像一个大写的“我”,我发现性格的顶部总是更近于矩形的性格比底部的边缘.距离可能至少增加50%.

我假设它正在为字符测量足够的空间,比如小写的“j”,它会挂得更低.但是,由于我试图用单个字母创建一个图形图标,我想要更精确的居中.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值