我有两个TextBlocks,每个都有不同的字体大小,并且试图垂直对齐它们,以便它们的基线匹配。通过基线对齐TextBlocks
我知道如何通过在单个TextBlock中创建多个Run元素来完成此操作,但在这种情况下,我的TextBlocks不是直接相邻的,因此无法工作。这是我的布局的一个简单的例子:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"></ColumnDefinition>
<ColumnDefinition Width="200"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="100"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Grid.Column="0"
FontSize="20"
VerticalAlignment="Bottom">Small</TextBlock>
<TextBlock Grid.Column="1"
FontSize="50"
VerticalAlignment="Bottom">Large</TextBlock>
</Grid>
如果我能找到一种方法来计算代码的字体的基线,这将是足够好 - 我所能做的对齐方式代码,使用帆布或自定义面板 - 但我一直无法找到任何用于查找字体指标的WP7 API。
我发现了一个非常类似的问题here,但该解决方案涉及FormattedText类,不幸的是这在WP7上不可用。
如果可能的话,我真的很希望能够在不对任何边距/偏移进行硬编码的情况下执行此操作。
谢谢德里克。我刚刚测试过,似乎运作良好。 – Nick 2011-06-03 13:53:41
你如何获得最高线? – tofutim 2011-06-10 20:49:25
@tofutim我假设你知道自己哪条线是最高的。如果您使用的是其中一种内置样式,则可以使用静态资源来匹配字体大小。 – 2011-06-13 10:12:03