Silverlight:为什么这两个元素之间有空格?

时间:2010-10-31 16:41:37

标签: silverlight xaml user-interface windows-phone-7

我正在使用Silverlight 4来开发Windows Phone应用。我有一个由以下XAML定义的控件:

<Grid x:Name="LayoutRoot" Background="Transparent" Margin="0,0,0,20">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

    <Image x:Name="Thumbnail" Grid.Column="0" Width="89" HorizontalAlignment="Left" VerticalAlignment="Top" />

    <!-- sometimes there's a hanging word in the headline that looks a bit awkward -->
    <TextBlock x:Name="Headline" Grid.Column="1" Grid.Row="0" Style="{StaticResource PhoneTextAccentStyle}" TextWrapping="Wrap" HorizontalAlignment="Left" FontSize="23.333" VerticalAlignment="Top" />
    <TextBlock x:Name="Teaser" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" HorizontalAlignment="Left" Style="{StaticResource PhoneTextSubtleStyle}"  TextWrapping="Wrap" VerticalAlignment="Top" Width="384"/>
</Grid>

出于某种原因,HeadlineTeaser之间有一个空格。删除PhoneAccentStyle无济于事。

为什么会这样?没有为这两个元素定义边距或填充。第一个网格行的高度定义为Auto。这是否意味着它只会与其中的内容一样大?

我在这里做错了什么?

3 个答案:

答案 0 :(得分:0)

我认为两个TextBlock之间没有空格,但实际字母和TextBlock的边界之间没有空格。尝试将您的布局与TextBlock内的两个类似StackPanel进行比较,它应该是相同的。

TextBlock为各种角色的高度和下降保留空间。你看到的空间来自那里。

答案 1 :(得分:0)

我无法看到图像,并且XAML中未定义高度。图像的高度是多少?

答案 2 :(得分:0)

原来问题是有时textBlock.Text会包含\n。删除它们可以解决问题。