WPF中Horizo​​ntalAlignment和Horizo​​ntalContentAlignment有什么区别?

Dot*_*net 23 wpf wpf-controls

有什么区别:

  • HorizontalAlignment="Stretch"
  • HorizontalContentAlignment="Stretch"

在WPF的文本框中?

示例示例:

<TextBox HorizontalAlignment="Stretch"
            HorizontalContentAlignment="Stretch"
            Height="100"
            TextWrapping="Wrap"
            AcceptsReturn="True"
         ></TextBox>
Run Code Online (Sandbox Code Playgroud)

mar*_*man 28

HorizontalAlignmentVerticalAlignment确定控件本身相对于其父控件的对齐方式.

HorizontalContentAlignmentVerticalContentAlignment确定相对于对照的控制内容对齐.

例如,考虑一个常见的Button控件

<Button x:Name="aButton" Width="50" Height="25" />
Run Code Online (Sandbox Code Playgroud)

在这里,您必须指定此控件如何在其父控件中对齐.合适的父控件可以是StackPanel,Grid,WrapPanel等.

对于这两种Horizontal-并且VerticalAlignment可以在选项中选择Left,Right,CenterStretch.前三个选项遵循按钮宽度和高度,而最后一个选项尝试将按钮拉伸到指定的方向,忽略设置的宽度或高度:

代码

<StackPanel Orientation="Horizontal">
    <Button x:Name="aButton" Width="50" Height="25" HorizontalAlignment="Right" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

例如,将Button放在StackPanel内部并将其对齐在左侧.

HorizontalContentAlignmentVerticalContentAlignment对齐控件的内容.内容是特殊的UIControl,它构建在控件中,您可以通过查看ContentControl的ControlTemplate来简单地利用它.请注意,我们特别谈论的是ContenControls,它充当一个容器,能够将一个对象"携带"在内部并显示 - 其内容.

所以HorizontalContentAlignment并且VerticalContentAlignment正在确定该内容相对于其容器的对齐.在最初创建按钮的情况下,按钮内容是其标题,并且有两个属性,您将这个标题对齐在按钮边框内,这两个边框也是其中之一:左,右,中心,拉伸.


Roh*_*ats 9

HorizontalAlignment将您的文本框与其包含的父项HorizontalContentAlignment对齐,而将文本框的文本与其自身对齐.