TextRenderer:如何测量文本,就好像它在具有不同Dpi的计算机上一样?

Art*_*kyi 7 c# text dpi winforms measure

我有一个C#WinForms应用程序,它由服务器端和客户端组成.我用TextRenderer.MeasureText(string text, Font font)方法来测量文本.

在某些时候,我需要在服务器端测量文本,就像它在客户端上一样.我将Graphics.DpiX和Graphics.DpiY值从客户端发送到服务器.根据这些值,我如何在服务器端测量文本?关键是客户端和服务器Dpi可能不同.

我想,我可以Graphics用某种方式从Dpi值创建对象,并使用TextRenderer.MeasureText(IDeviceContext dc, string text, Font font)重载来测量我的文本.但是如何Graphics从DpiX和DpiY值创建?

Ali*_*eza 0

您可以尝试以下技巧:将转换应用于您用于测量的字体大小:在 120dpi 上使用 12pt 字体绘图将采用与在 96 dpi 上使用 12*120/96=15 绘图相同的像素数。