Рассчитать базовую линию шрифта в WinRT

Я хотел бы узнать базовую линию шрифта в WinRT.

Я также рассчитал размер текста для определенного шрифта, создав фиктивный текстовый блок, но я не уверен, как рассчитать базовую линию. Это вообще возможно в WinRT?

1 ответ

Решение

К сожалению, то, что вы ищете FormattedText [MSDN: 1 2 ], который существует в WPF и не существует в WinRT (я даже не думаю, что он даже в Silverlight).

Вероятно, он будет включен в будущую версию, потому что он кажется очень востребованным, его очень не хватает, и команда знает об этом. Смотрите здесь: http://social.msdn.microsoft.com.

Если вы заинтересованы или действительно нуждаетесь в способе измерения специфики шрифта, вы можете попробовать написать оболочку для DirectWrite, которая, насколько мне известно, находится внутри стека доступных технологий WinRT, однако она доступна только через C++.

Вот пара моментов для вас, если вы хотите попробовать:

надеюсь, это поможет, удачи

Обновить

Я немного подумал об этом и вспомнил, что 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;
    }

и я использовал это, чтобы сделать это:Скриншот

идеально! право? надеюсь, это поможет

Другие вопросы по тегам