如何计算字体(字体)的x高度而不需要.NET 3.0或更高版本(例如,我想避免System.Windows.Media
名称空间)。在.NET 2.0中计算x高度
回答
虽然你的问题清楚地表明了x高度,但所有的答案都是关于身高的,这并不是一回事。 MeasureString
和MeasureCharacterRanges
不提供x高度。
无论如何,我的答案是:不,x-height在.NET 2.0中不可用(以任何方式)。
您正在寻找这样的:Font.Height或也许这:How to: Obtain Font Metrics
我正在寻找专门[x-height](http://en.wikipedia.org/wiki/X-height)。 'System.Windows.Media'包含所需值[Typeface.XHeight](http://msdn.microsoft.com/en-us/library/system.windows.media.typeface.xheight%28v=VS.100%29 .aspx) – Marius 2010-09-13 17:16:54
或者,您在寻找一种方式来计算与字体渲染文本的高度?在这种情况下,您可以使用TextRenderer类和MeasureText函数。这可从.NET 2.0获得。
如果您可能使用System.Drawing
命名空间,则可能需要使用Graphics.MeasureString()
方法。否则,就像乔希说的那样。
您的问题可能不够详细,以获得进一步的帮助。
EDIT#1
的Graphics.MeasureString()
方法的返回类型是System.Drawing.SizeF
。这SizeF
类提供了三个属性,其中你有这两个:
如果这不是你想要的,他们我不明白你的观点。如果是这样,我很抱歉。
我希望这有助于反正! =)
或使用TextRenderer类。在这种情况下,你不需要一个Graphics对象的实例。 – Patrick 2010-09-13 13:54:38
@Patrick:或者使用TextRenderer类也可以。我总是忘记这门课。我个人并不需要使用这两种工具,而是使用了一个以图形模式工作的.NET PDF库,所以我通过'MeasureString'方法记住了这一点。谢谢(你的)信息! =) – 2010-09-13 14:42:38
我将有权访问Graphics对象。在最坏的情况下,我将不得不使用“MeasureString”或“MeasureCharacterRanges”来计算'x'的高度。 – Marius 2010-09-13 17:18:30
这里的所有答案都是错误的。 你可以在.NET 2.0中做到这一点,但你需要PInvoke。
您必须调用GetGlyphOutline()
API并传递一个字符:小写字母“x”。 从gmBlackBoxY
和gmptGlyphOrigin.y
您可以计算x高度。这将需要在设备上下文(DC)中选择TrueType或Vector字体。
警告:请注意,并非所有字体都使用小写字母,并且某些字体甚至没有定义“x”字符。在这种情况下,x高度无法确定。
- 1. swift中uiwebview高度计算
- 2. 计算器高度宽度
- 3. 在OS X中计算磁盘速度
- 4. 如何在Android中计算WebView高度?
- 5. 用LESS计算DIV高度
- 6. 计算UILabel的高度?
- 7. 计算UITabBar的高度
- 8. 高精度数值计算
- 9. 计算UIScrollView的高度
- 10. WinApi:计算ListView高度
- 11. 计算div的高度
- 12. 如何计算div高度
- 13. 如何计算字体对象的x高度,即ex?
- 14. numpy中的高精度计算
- 15. 如何计算UWP中FontFamily的高度?
- 16. 如何计算圆的高度与x轴
- 17. 计算UIBezierPath宽度和高度?
- 18. 从高度和角度计算斜边
- 19. 计算AngularJS中DOM的动态高度
- 20. 计算在.Net中以X行显示文本所需的最小宽度?
- 21. 如何在YUI3中计算元素的宽度和高度?
- 22. jScrollPane 2.0在铬中的高度问题
- 23. 如何计算6度函数f(x)
- 24. 如何更改.NET 2.0中的Windows 2000计算机名称?
- 25. 计算父元素的高度
- 26. 浏览器如何计算DIV高度?
- 27. 计算包含HTML的NSAttributedString的高度
- 28. 如何计算UILabel的高度?
- 29. 用文本计算div的高度
- 30. 计算3D高度图的轮廓?
尽管这被标记为答案,但它是错误的。请参阅下面的答案。 – Elmue 2014-07-28 21:14:48