Silverlight:如何在XAML中正确设置高度?

时间:2010-10-23 12:58:08

标签: silverlight windows-phone-7

我正在尝试制作一个显示新闻项目的控件。有一个图像将以任何大小给出,但控件可以裁剪为正方形。还有一个标题和预告片。

标题和图片将位于同一垂直水平。预告片将在他们之下:

the story control

我希望控件垂直拉伸以适应任何预告片和标题文字。

此外,如果没有图像存在,我希望文本向右滑动。

这是我目前正在使用的XAML:

<Grid x:Name="LayoutRoot" Background="Transparent">
    <Image x:Name="Thumbnail" Width="89" HorizontalAlignment="Left" VerticalAlignment="Top" />
    <TextBlock x:Name="Headline" Margin="93,0,0,0" Style="{StaticResource PhoneTextAccentStyle}" TextWrapping="Wrap" HorizontalAlignment="Left" Width="299" FontSize="23.333" VerticalAlignment="Top" />
    <TextBlock x:Name="Teaser" HorizontalAlignment="Left" Margin="4,100,0,0" Style="{StaticResource PhoneTextSubtleStyle}"  TextWrapping="Wrap" VerticalAlignment="Top" Width="384"/>
</Grid>

我是否希望使用Grid行和列来控制布局?或者我想使用边距?如果标题很短,而且没有图片,我怎么能确定预告片文字会向上滑动以填满空白区域?

1 个答案:

答案 0 :(得分:1)

建议不要使用边距进行布局。您可以使用包含2列和行的网格:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>

    <Image ... />
    <TextBlock Grid.Column="1" ... />
    <TextBlock Grid.Row="1" Grid.ColumnSpan="2" .../>
</Grid>
相关问题