2009-12-18 6 views
0

je suit dans mon XAML:Silverlight 3 TextBlock laisse un espace vide au-dessus du texte

<Grid x:Name="LayoutRoot" Background="White"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="20"/> 
     <RowDefinition Height="7"/> 
     <RowDefinition Height="57"/> 
    </Grid.RowDefinitions> 

    <TextBlock Grid.Row="0" FontSize="18">Title Text</TextBlock> 

    <Rectangle Grid.Row="1" Margin="0,2" Height="3" HorizontalAlignment="Stretch" Fill="#ff000000"/> 

    <Border Grid.Row="2" Margin="0" Padding="0" BorderBrush="Black" BorderThickness="1"> 
     <TextBlock Margin="0" Padding="0" FontSize="55">123</TextBlock> 
    </Border> 
</Grid> 

Le problème est qu'il ya un espace (environ 10px) au-dessus du texte du TextBlock bas. Je peux seulement sembler me débarasser de cet espace en utilisant une taille de police beaucoup plus petite.

Quelqu'un a-t-il une idée de la raison pour laquelle cet espace apparaît et de ce que je peux y faire?

Merci.

Répondre

1

Je crois que c'est parce que le VerticalAlignment par défaut sur un TextBlock est Stretch. Essayez le mettre à Centre:

<TextBlock Margin="0" Padding="0" FontSize="55" VerticalAlignment="Center">123</TextBlock> 

Si vous avez vraiment besoin de pousser vers le haut, vous pouvez ajouter une marge supérieure négative.

+0

Cela n'a résolu le problème. Étrange parce que j'avais essayé de régler VerticalAlignment sur "Top", et cela n'a rien fait pour le problème. Savez-vous pourquoi "Top" ne fonctionne pas, mais "Centre" fait? – Sako73

+0

"Haut" semble effectivement fonctionner si la ligne du bas dans votre grille était quelque chose comme 300px, au lieu de 57px. Parce que la ligne du bas est plus petite que la hauteur réelle du TextBlock (en raison de la grande taille de la police), Center le centre verticalement sur la ligne indépendamment de l'espace. Si la ligne du bas n'avait pas une taille fixe et que vous vouliez toujours qu'elle reste en haut, vous devez la positionner VerticalAlignment = "Top" avec une marge supérieure de -15px ou plus pour obtenir le même effet. –

Questions connexes