Windows应用商店应用 - XAML - 为什么Textblock在StackPanel上更大?

时间:2014-06-11 14:12:37

标签: xaml windows-store-apps

我有以下XAML,但它没有按照我的预期行事。

<StackPanel Background="{Binding EwsColour}" Visibility="{Binding EwsVisibility}" HorizontalAlignment="Center" VerticalAlignment="Center" >
    <TextBlock Text="EWS" Style="{StaticResource SubheaderTextBlockStyle}" VerticalAlignment="Top" FontWeight="SemiBold" HorizontalAlignment="Center" />
    <TextBlock Text="18" Style="{StaticResource SubheaderTextBlockStyle}" FontWeight="SemiBold" FontSize="100" />
</StackPanel>

我最终得到了这个

Text Block Bigger then Stack Panel

我不明白为什么有{18}的TextBlockStackPanel更大。谁能告诉我为什么?

1 个答案:

答案 0 :(得分:1)

在看到Chris W的评论后,我检查了generic.xaml中的Style

<Style x:Key="SubheaderTextBlockStyle" TargetType="TextBlock" BasedOn="{StaticResource BaseTextBlockStyle}">
    <Setter Property="FontSize" Value="26.667"/>
    <Setter Property="FontWeight" Value="Light"/>
    <Setter Property="LineHeight" Value="30"/>
</Style>

我不知道有LineHeight属性。覆盖它以使其与字体大小相同(或更大的实际上创建更好的UX)可以阻止这种情况发生。

<StackPanel Background="{Binding EwsColour}" Visibility="{Binding EwsVisibility}" HorizontalAlignment="Center" VerticalAlignment="Center" >
    <TextBlock Text="EWS" Style="{StaticResource SubheaderTextBlockStyle}" VerticalAlignment="Top" FontWeight="SemiBold" HorizontalAlignment="Center" />
    <TextBlock Text="18" Style="{StaticResource SubheaderTextBlockStyle}" FontWeight="SemiBold" FontSize="100" LineHeight="110" />
</StackPanel>