StackPanel располагает все элементы в ряд либо по горизонтали, либо по вертикали в зависимости от ориентации. Например, расположим элементы по вертикали:
<Page x:Class="HelloApp.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:HelloApp" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid> <StackPanel HorizontalAlignment="Center"> <Button Background="Blue" Content="Blue" Width="200" /> <Button Background="White" Content="White" Foreground="Black" Width="200" /> <Button Background="Red" Content="Red" Width="200" /> </StackPanel> </Grid> </Page>
По умолчанию свойство Orientation элемента StackPanel использует значение Vertical, то есть создается вертикальный ряд, в который помещаются все вложенные элементы сверху вниз. Мы также можем задать горизонтальный стек. Для этого нам надо указать свойство Orientation="Horizontal":
<StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Center"> <Button Background="Blue" Content="Blue" Width="100" /> <Button Background="White" Content="White" Foreground="Black" Width="100" /> <Button Background="Red" Content="Red" Width="100" /> </StackPanel>
По умолчанию при горизонтальной ориентации все элементы располагаются слева направо. Если мы хотим, чтобы наполнение стека начиналось справа налево,
то нам надо задать свойство FlowDirection: <StackPanel Orientation="Horizontal" FlowDirection="RightToLeft">
.
По умолчанию это свойство имеет значение LeftToRight, то есть слева направо.