繁体   English   中英

TextBlock行高

[英]TextBlock Line Height

我正在尝试向画布添加文本块控件(具有确定的高度和宽度),并且我想根据字体文件(.tff)中定义的行距设置该文本块的line height属性。 加载字体文件后,我使用具有该字体属性的字体。 谁能解释我为什么行高太大以及如何计算每种字体和大小的因数,以便行高允许所有行都适合文本块? 我认为默认情况下,行高并不代表字体文件的行距的真实值。

这是代码,其中item是我的对象:

    TextBlock tb = new TextBlock();
    tb.Width = item.SizePX.Width;
    tb.Height = item.SizePX.Height;
    tb.Foreground = color;
    tb.TextAlignment = item.TextFormat.TextHAlignment;
    tb.FontSize = item.TextFormat.FontSize;
    tb.FontFamily = typeFace.FontFamily;
    tb.FontWeight = typeFace.Weight;
    tb.FontStretch = typeFace.Stretch;
    tb.FontStyle = typeFace.Style;
    tb.TextDecorations = decCol;
    tb.MaxWidth = item.SizePX.Width;
    tb.TextWrapping = TextWrapping.Wrap;
    tb.LineHeight = typeFace.FontFamily.LineSpacing * item.TextFormat.FontSize;

    tb.LineStackingStrategy = LineStackingStrategy.BlockLineHeight;

item.TextFormat.FontSize是对象中定义的字体的大小(以像素为单位)。

然后我尝试使用typeFace.FontFamily.Baseline

tb.LineHeight = ypeFace.FontFamily.Baseline * item.TextFormat.FontSize;

仍然无法正常工作...有人可以帮我解决这个问题吗?

设置为double.NaN的值将使用所需的auto行高计算模式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM