gpt4 book ai didi

.net - 如何在 .NET 中实现精细的字体缩放?

转载 作者:可可西里 更新时间:2023-11-01 10:38:38 25 4
gpt4 key购买 nike

Microsoft Office 在字体缩放方面做得非常好。它们几乎可以以 0.5 点的步长线性缩放(见下图)。

使用 Graphics.DrawString 我无法重现这一点,但我在缩放字体大小时看到了明显的步骤。

使用下面的代码,我得到了以下输出,表明我不能像 Office 那样绘制尽可能多的文本。有什么想法可以绘制这些中间字体大小吗?

Font size comparison

    Dim baseSize As Single = 16.0F
Dim inputText As String = "MMMMMMMMMMMMMM"

Dim stringFormat As Drawing.StringFormat = Drawing.StringFormat.GenericTypographic()

Dim pos As Single
Dim i As Integer

Do
Using font As Drawing.Font = New Drawing.Font("Calibri", (baseSize + i / 10.0F), FontStyle.Regular, GraphicsUnit.Pixel)
Dim text As String = inputText & " " & font.Size.ToString() & "px"
Dim textSize As SizeF = e.Graphics.MeasureString(text, font, New PointF(0, 0), stringFormat)
e.Graphics.DrawString(text, font, Brushes.Black, New Drawing.RectangleF(10, pos, textSize.Width, textSize.Height), stringFormat)
pos += font.Height
End Using
i += 1
Loop While pos < ClientRectangle.Height

最佳答案

设置文本渲染提示:

e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias;

几乎连续缩放需要抗锯齿。但是 - 从您的评论来看 - 网格调整会导致字体大小四舍五入到一些阻止它的离散值。

关于.net - 如何在 .NET 中实现精细的字体缩放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11338939/

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