我正在尝试将一个文本块控件(具有确定的高度和宽度)添加到画布,我想根据字体文件(.tff)中定义的行间距设置该文本块的行高属性。加载字体文件后,我使用具有该字体属性的字体。任何人都可以解释为什么行高要大,以及我如何计算每个字体和大小的因子,以便行高允许所有行适合文本块?我认为默认的行高并不代表字体文件的行间距的真实值。
这是代码,其中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;
还是不行...... 任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
设置double.NaN
的值将使用您想要的auto
行高计算模式。