2016-12-02 5 views
0

Considérons le XAML suivant:XAML TextBlock TextAlignment vs HorizontalAlignment

<Grid> 
    <TextBlock Text="Some Text" TextAlignment="Right" /> 
    <TextBlock Text="Some Text" HorizontalAlignment="Right" /> 
</Grid> 

Tant que les deux TextBlock s sont réglés sur la même Grid.Row et Grid.Column, ils apparaîtront toujours au même endroit - l'un sur l'autre .

concept de similaire, ici - avec les 2 lignes de texte dans les deux StackPanel s exactement l'alignement:

<Grid> 
    <StackPanel> 
     <TextBlock Text="Line One" HorizontalAlignment="Right" /> 
     <TextBlock Text="Line Two" TextAlignment="Right" /> 
    </StackPanel> 
    <StackPanel> 
     <TextBlock Text="Line One" HorizontalAlignment="Right" /> 
     <TextBlock Text="Line Two" TextAlignment="Right" /> 
    </StackPanel> 
</Grid> 

Et ainsi de suite ...


En termes d'affichage du texte le droit du parent, les attributs TextAlignment et HorizontalAlignment font tous les deux la même chose - d'après ce que je peux voir.

Quelqu'un peut-il me dire quelle est la différence réelle entre TextAlignment et HorizontalAlignment, quand il s'agit de TextBlock s?

Y a-t-il un choix préféré des deux à utiliser?

Y a-t-il des implications à utiliser?

Répondre

2

HorizontalAlignment détermine l'alignement du TextBox par rapport à son parent.

TextAlignment détermine l'alignement du texte dans le TextBox

Il y a des cas, comme vous l'avez trouvé, où il revient à la même chose dans la pratique.

<Border 
    BorderBrush="Black" 
    BorderThickness="1" 
    Width="250" 
    HorizontalAlignment="Left" 
    Margin="10" 
    > 
    <StackPanel Orientation="Vertical"> 
     <TextBlock 
      Background="Orange" 
      TextAlignment="Right" 
      HorizontalAlignment="Left" 
      > 
      I met a young lady named Blorenge<LineBreak/> 
      Whose XAML examples were orange<LineBreak/> 
      She ran out of rhymes<LineBreak/> 
      At embarrassing times, 
     </TextBlock> 
     <TextBlock 
      Background="LightSkyBlue" 
      TextAlignment="Left" 
      HorizontalAlignment="Right" 
      > 
      I met a young lady named Blorenge<LineBreak/> 
      Whose XAML examples were orange<LineBreak/> 
      She ran out of rhymes<LineBreak/> 
      At embarrassing times, 
     </TextBlock> 
    </StackPanel> 
</Border> 

enter image description here

Voici une autre illustration, de @ChrisW., Qui montre comment les deux peuvent regarder la même chose en fait d'être différent d'une manière qui peut avoir une incidence sur la mise en page, etc.

enter image description here

+1

Eh bien dang, battez-moi en faisant un exemple, si vous voulez une autre image pour visuel, je vais claquer [cette image] (http://i.imgur.com/0risUbE.png) sur le mien pour visualiser comme un «centre» –

+0

@ChrisW. Merci! –

+0

Merci à vous deux @EdPlunkett et ChrisW.! C'est une superbe explication et de bons exemples d'illustrations :) Cela a rendu beaucoup plus clair les différences. Acclamations gars! –