我有一个由服务器和客户端组成的C# WinForms应用程序。我使用TextRenderer.MeasureText(string text, Font font)
方法来测量文本。
在某些时候,我需要在服务器端测量文本,就像在客户端一样。我将Graphics.DpiX和Graphics.DpiY值从客户端发送到服务器。基于这些值,我如何在服务器端测量文本?关键点在于客户端和服务器端的Dpi可能不同。
我猜想,我可以从Dpi值中创建Graphics
对象,并使用TextRenderer.MeasureText(IDeviceContext dc, string text, Font font)
重载来测量我的文本。但是如何仅从DpiX和DpiY值创建Graphics
呢?
Graphics
对象的MeasureString(string text, Font font)
方法返回正确的值,但是TextRenderer
似乎没有考虑到Graphics.DpiX
和Graphics.DpiY
的值。你有什么想法,为什么会发生这种情况?我不想使用Graphics.MeasureString(string text, Font font)
方法,因为我知道它可能不准确。 - Artem KachanovskyiGraphics.MeasureString(string text, Font font)
怎么样?这个方法不好吗? - Artem KachanovskyiTextFormatFlags.PreserveGraphicsTranslateTransform
吗? - Robert S.