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

Silverlight:如何在XAML中正确设置高度?,silverlight,windows-phone-7,Silverlight,Windows Phone 7,我正在尝试创建一个显示新闻项的控件。有一个图像将以任何大小给出,但控件可以裁剪成正方形。还有一个标题和笑话 标题和图像将位于同一垂直面上。挑逗者将在他们下面: 我希望控件垂直拉伸以容纳任何摘要和标题文本 另外,如果没有图像,我希望文本滑到右边 以下是我当前使用的XAML: <Grid x:Name="LayoutRoot" Background="Transparent"> <Image x:Name="Thumbnail" Width="89" Horizontal

我正在尝试创建一个显示新闻项的控件。有一个图像将以任何大小给出,但控件可以裁剪成正方形。还有一个标题和笑话

标题和图像将位于同一垂直面上。挑逗者将在他们下面:

我希望控件垂直拉伸以容纳任何摘要和标题文本

另外,如果没有图像,我希望文本滑到右边

以下是我当前使用的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>
    <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>