c# – TextRenderer:如何测量文本,就好像它在具有不同Dpi的机器
发布时间:2020-12-15 07:52:11 所属栏目:百科 来源:网络整理
导读:我有一个C#WinForms应用程序,它由服务器端和客户端组成.我使用TextRenderer.MeasureText(字符串文本,字体字体)方法来测量文本. 在某些时候,我需要在服务器端测量文本,就像它在客户端上一样.我将Graphics.DpiX和Graphics.DpiY值从客户端发送到服务器.根据这些
我有一个C#WinForms应用程序,它由服务器端和客户端组成.我使用TextRenderer.MeasureText(字符串文本,字体字体)方法来测量文本.
在某些时候,我需要在服务器端测量文本,就像它在客户端上一样.我将Graphics.DpiX和Graphics.DpiY值从客户端发送到服务器.根据这些值,我如何在服务器端测量文本?关键是客户端和服务器Dpi可能不同. 我猜,我可以用某种方式从Dpi值创建Graphics对象,并使用TextRenderer.MeasureText(IDeviceContext dc,string text,Font font)重载来测量我的文本.但是如何从DpiX和DpiY值创建图形? 解决方法
你可以尝试这个hack:将变换应用到你用来测量的字体大小:在120dpi上使用12pt字体绘制将使用与96 dpi时12 * 120/96 = 15的绘图相同的像素数.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |