如何計算字體(字體)的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. UILabel高度計算
- 3. 計算器高度寬度
- 4. 在OS X中計算磁盤速度
- 5. 在python中計算高斯核密度
- 6. 如何在Android中計算WebView高度?
- 7. 計算法線高度圖
- 8. TCPDF計算細胞高度
- 9. 用LESS計算DIV高度
- 10. 高度計算歧義
- 11. 計算UILabel的高度?
- 12. 計算UITabBar的高度
- 13. 高精度數值計算
- 14. 計算PivotItem的高度?
- 15. 計算UIScrollView的高度
- 16. Monotouch - 計算UILabel高度
- 17. JQuery:計算div的高度
- 18. WinApi:計算ListView高度
- 19. C#高精度計算
- 20. 計算div的高度
- 21. 如何計算div高度
- 22. IE不計算textarea高度與行高
- 23. 如何計算字體對象的x高度,即ex?
- 24. numpy中的高精度計算
- 25. 如何計算UWP中FontFamily的高度?
- 26. 從元素中計算堆的高度
- 27. 如何計算圓的高度與x軸
- 28. 如何計算jQuery中div的高度?
- 29. 計算在.Net中以X行顯示文本所需的最小寬度?
- 30. 計算UIBezierPath寬度和高度?
儘管這被標記爲答案,但它是錯誤的。請參閱下面的答案。 – Elmue 2014-07-28 21:14:48