Выравнивание содержимого в WPF

Автор: Махеш Чанд (Mahesh Chand)

В этой статье показывается, как можно выравнивать содержимое элементов в WPF.

Свойства HorizontalContentAlignment и VerticalContentAlignment задаются в классе System.Windows.Controls.Control, который является родительским классом всех элементов управления в WPF.

Аналогично HorizontalAlignment и VerticalAlignment, оба свойства имеют тип перечислений HorizontalAlignment и VerticalAlignment соответственно.

При создании пользовательского интерфейса с кнопкой и элементом управления TextBox пользовательский интерфейс выглядит аналогично показанному на рисунке 1, когда содержимое кнопки по умолчанию выравнивается по центру. Содержимое элемента управления TextBox по умолчанию выравнивается по левому краю и по верхнему краю.

Рисунок 1

Но что, если требуется разместить содержимое элементов управления Button и TextBox по другому? Предположим, требуется расположить содержимое Button и TextBox внизу и справа. Это может быть удобно, когда размер элементов больше размера их содержимого.

Код, приведенный в листинге 1, устанавливает свойства VerticalContentAlignment и HorizontalContentAlignment в значения "bottom" и "right".

<Grid Name="StackPanel1" Background="LightGray" >
    <Button Name="Button1" Background="LightBlue" Height="45"                  
                Content="Click Me!" Margin="23,12,159,0" VerticalAlignment="Top"
                FontSize="16" FontWeight="Bold"
            VerticalContentAlignment="Bottom" HorizontalContentAlignment="Right" />
    <TextBox Height="50" Margin="26,72,74,0" Name="textBox1" VerticalAlignment="Top"
             Text="I am a TextBox" FontSize="16"
             VerticalContentAlignment="Bottom" HorizontalContentAlignment="Right"  />
</Grid>

Листинг 1

В листинге 2 создается результат, показанный на рисунке 2. Как можно видеть, содержимое элементов управления Button и TextBox выравнивается по нижнему краю и по правому краю.  

Рисунок 2

С помощью этих двух свойств можно выравнивать содержимое элементов и элементов управления WPF так, как требуется.

Мои поздравления!