我想了解WinRT中的baseline of a font。計算WinRT中的字體基線
我也計算了creating a dummy TextBlock特定字體的文本大小,但我不確定如何計算基準。這在WinRT中甚至可能嗎?
我想了解WinRT中的baseline of a font。計算WinRT中的字體基線
我也計算了creating a dummy TextBlock特定字體的文本大小,但我不確定如何計算基準。這在WinRT中甚至可能嗎?
不幸的是,你正在尋找的是FormattedText
[MSDN:12]存在於WPF和WinRT中不存在(我甚至不認爲它甚至在Silverlight還)。
它可能會包含在未來的版本中,因爲它似乎是一個非常受追捧的功能,極其錯過,並且團隊意識到它的遺漏。見這裏:http://social.msdn.microsoft.com。
如果您有興趣或者確實需要測量某種類型面部特徵的方法,您可以嘗試編寫一個封裝器,以便我知道這是WinRT可用技術堆棧中的內容,不過它只能通過C++訪問
這裏是一對夫婦跳樓點你的,如果你也想嘗試:
these guys seem to actually be using DirectWrite in a WinRT app
this is a wrapper for C++ making DX available, DirectWrite would be much of the same
希望這可以幫助,祝你好運-ck
更新
我想了一下,想起TextBlock
■找了經常遺忘物BaselineOffset
這給您從所選類型的臉部框的頂部刪除基線!所以你可以用同樣的破解大家用來代替MeasureString
來代替FormattedText
的損失。在這裏,醬:
private double GetBaselineOffset(double size, FontFamily family = null, FontWeight? weight = null, FontStyle? style = null, FontStretch? stretch = null)
{
var temp = new TextBlock();
temp.FontSize = size;
temp.FontFamily = family ?? temp.FontFamily;
temp.FontStretch = stretch ?? temp.FontStretch;
temp.FontStyle = style ?? temp.FontStyle;
temp.FontWeight = weight ?? temp.FontWeight;
var _size = new Size(10000, 10000);
var location = new Point(0, 0);
temp.Measure(_size);
temp.Arrange(new Rect(location, _size));
return temp.BaselineOffset;
}
,我用的是要做到這一點:
完美!對?希望這有助於-ck
哇,是的,這是完美的! 我在查找這個問題時已經看到了這個屬性,但由於某種原因已經解僱了它......但它的工作原理完全正確。 – 2013-04-12 10:56:31