26

有什么区别:

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

在 WPF 的文本框中?

示例:

<TextBox HorizontalAlignment="Stretch"
            HorizontalContentAlignment="Stretch"
            Height="100"
            TextWrapping="Wrap"
            AcceptsReturn="True"
         ></TextBox>
4

3 回答 3

29

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

HorizontalContentAlignmentVerticalContentAlignment确定控件内容相对于控件的对齐方式。

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

<Button x:Name="aButton" Width="50" Height="25" />

在这里,您必须以某种方式指定此控件在其父控件中的对齐方式。合适的父控件可以是 StackPanel、Grid、WrapPanel 等。

对于两者Horizontal-您可以在选项、和之间进行VerticalAlignment选择。前三个选项尊重按钮的宽度和高度,而最后一个选项尝试将按钮拉伸到指定的方向,忽略设置的宽度或高度:LeftRightCenterStretch

编码

<StackPanel Orientation="Horizontal">
    <Button x:Name="aButton" Width="50" Height="25" HorizontalAlignment="Right" />
</StackPanel>

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

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

因此HorizontalContentAlignment,并且VerticalContentAlignment正在确定此内容相对于其容器的对齐方式。在最初创建的按钮的情况下,按钮内容是它的标题,并且使用有问题的两个属性,您正在将此标题对齐在按钮边框内,这也是其中之一:左、右、中心、拉伸。

于 2012-07-19T17:30:18.893 回答
10

HorizontalAlignment将使您的文本框与其包含的父HorizontalContentAlignment级对齐,而将您的文本框的文本与其自身对齐。

于 2012-07-19T17:30:36.337 回答
1

Horizo​​ntalContentAlignment 和 VerticalContentAlignment 与将这些应用于其内容的内容控件一起使用。例如,在下面的代码中,内容控制按钮会将其内容(在本例中为字符串,可以是任意对象)居中对齐。

当子元素位于面板内时,Horizo​​ntalAlignment 和 VerticalAlignment 与子元素一起使用。Panel 会根据子元素的这些属性来排列它的子元素。在下面的代码中,面板 (StackPanel) 将其子 (Button) 对齐。

<StackPanel>
    <Button Content="OK" 
    HorizontalContentAlignment="Center" VerticalContentAlignment="Center" 
    HorizontalAlignment="Right" VerticalAlignment="Top" />
</StackPanel>
于 2018-04-18T09:01:39.950 回答