Ответ 1
HorizontalAlignment
и VerticalAlignment
определяют выравнивание самого элемента управления относительно его родительского элемента управления.
HorizontalContentAlignment
и VerticalContentAlignment
определяют выравнивание содержимого элементов управления относительно элемента управления.
Например, рассмотрим общее управление Button
<Button x:Name="aButton" Width="50" Height="25" />
Здесь вам нужно как-то указать, как этот элемент управления выравнивается внутри него - родительский элемент управления. Подходящим родительским элементом управления может быть StackPanel, Grid, WrapPanel и т.д.
Для Horizontal
- и VerticalAlignment
вы можете выбрать между опциями Left
, Right
, Center
и Stretch
. Первые три варианта соответствуют ширине и высоте кнопок, тогда как последний параметр пытается растянуть кнопку в указанном направлении, игнорируя установленную ширину или высоту:
Код
<StackPanel Orientation="Horizontal">
<Button x:Name="aButton" Width="50" Height="25" HorizontalAlignment="Right" />
</StackPanel>
например, поместил бы Button внутри StackPanel и выровнял бы его слева.
HorizontalContentAlignment
и VerticalContentAlignment
выравнивает содержимое элемента управления. Содержимое - это специальный UIControl, который встроен в элемент управления, который вы можете просто использовать, заглянув в ControlTemplate ContentControl. Обратите внимание, что мы говорим, в частности, о ContenControls, которые действуют как контейнер, способный воспринимать только один объект для "переноса" внутри и отображения - его содержимого.
Итак HorizontalContentAlignment
и VerticalContentAlignment
определяют выравнивание этого содержимого относительно его контейнера. В случае изначально созданной кнопки содержание кнопок - это заголовок, и с двумя указанными свойствами вы выравниваете этот заголовок внутри границ кнопок, который также является одним из следующих: Left, Right, Center, Stretch.