XAML TextBlock TextAlignment 与 Horizo​​ntalAlignment

XAML TextBlock TextAlignment vs HorizontalAlignment

考虑以下 XAML:

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

只要两个 TextBlock 设置为相同的 Grid.RowGrid.Column,它们将始终出现在同一位置 - 一个在另一个之上。

类似的概念,这里 - StackPanel 中的 2 行文本完全对齐:

<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>

等等...


就在父级右侧显示文本而言,TextAlignmentHorizontalAlignment 属性都在做同样的事情——据我所知。

谁能告诉我 TextAlignmentHorizontalAlignmentTextBlock 方面的实际区别是什么?

两者有更优的选择吗?

使用这两者有什么影响吗?

HorizontalAlignment 确定 TextBox 相对于其父项的对齐方式。

TextAlignment 确定 TextBox

中文本的对齐方式

如您所见,在某些情况下,这在实践中是一样的。

<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>

这是来自@ChrisW. 的另一幅插图,它显示了两者如何看起来相同,但实际上在可能影响布局等方面的不同之处。