Silverlight: Как правильно установить высоту в XAML? - PullRequest
0 голосов
/ 23 октября 2010

Я пытаюсь создать элемент управления, отображающий новость. Есть изображение, которое будет дано в любом размере, но элемент управления может обрезаться до квадрата. Также есть заголовок и тизер.

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

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 Ответ

1 голос
/ 23 октября 2010

Использование полей для макета не рекомендуется. Вы можете просто использовать Grid с 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...