我正在尝试制作一个显示新闻项目的控件。有一个图像将以任何大小给出,但控件可以裁剪为正方形。还有一个标题和预告片。
标题和图片将位于同一垂直水平。预告片将在他们之下:
我希望控件垂直拉伸以适应任何预告片和标题文字。
此外,如果没有图像存在,我希望文本向右滑动。
这是我目前正在使用的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
行和列来控制布局?或者我想使用边距?如果标题很短,而且没有图片,我怎么能确定预告片文字会向上滑动以填满空白区域?
答案 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>