Silverlight: Comment puis-je régler correctement la hauteur en XAML?
-
25-09-2019 - |
Question
Je suis en train de faire un contrôle qui affiche un élément de nouvelles. Il y a une image qui sera donnée dans toutes les dimensions, mais le contrôle peut rogner sur une place. Il y a aussi un titre et taquin.
Le titre et l'image sera au même niveau vertical. Le teaser sera sous eux:
Je veux que le contrôle d'étirer verticalement pour éviter toute casse et texte du titre.
En outre, s'il n'y a pas d'image actuelle, je voudrais que le texte à glisser vers la droite.
Voici le code XAML Je suis actuellement en utilisant:
<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>
Est-ce que je veux être le contrôle de la mise en page avec des lignes et des colonnes de Grid
? Ou est-ce que je veux être en utilisant les marges? Si le titre est court, et il n'y a pas d'image, comment puis-je être sûr que le texte teaser glissera jusqu'à remplir l'espace vide?
La solution
L'utilisation des marges pour la mise en page n'est pas recommandée. Vous pouvez simplement utiliser une grille avec 2 colonnes et lignes:
<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>