2010-10-23 2 views
0

Я пытаюсь сделать элемент управления, отображающий новость. Будет изображение, которое будет дано в любом размере, но элемент управления может обрезать квадрат. Существует также заголовок и тизер.Silverlight: Как правильно установить высоту в XAML?

Заголовок и изображение будут на одном и том же вертикальном уровне. Тизер будет под ними:

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

Использование полей для компоновки не рекомендуется. Вы можете просто использовать сетку с двумя колонками и строками:

<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> 
Смежные вопросы