Use StackPanel to arrange child objects in a single line that you can align horizontally or vertically.
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="StackPanel_layout.Window1" Title="StackPanel Sample"> <Border BorderBrush="Black" Background="White" BorderThickness="2"> <Grid VerticalAlignment="Top" HorizontalAlignment="Left"> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition Height="400"/> </Grid.RowDefinitions> <TextBlock Grid.Row="2" Grid.Column="0">Change StackPanel Orientation:</TextBlock> <TextBlock Grid.Row="2" Grid.Column="2">Change HorizontalAlignment:</TextBlock> <TextBlock Grid.Row="2" Grid.Column="4">Change VerticalAlignment:</TextBlock> <ListBox VerticalAlignment="Top" SelectionChanged="changeOrientation" Grid.Row="2" Grid.Column="1" Width="100" Height="50" Margin="0,0,0,10"> <ListBoxItem>Horizontal</ListBoxItem> <ListBoxItem>Vertical</ListBoxItem> </ListBox> <ListBox VerticalAlignment="Top" SelectionChanged="changeHorAlign" Grid.Row="2" Grid.Column="3" Width="100" Height="50" Margin="0,0,0,10"> <ListBoxItem>Left</ListBoxItem> <ListBoxItem>Right</ListBoxItem> <ListBoxItem>Center</ListBoxItem> <ListBoxItem>Stretch</ListBoxItem> </ListBox> <ListBox VerticalAlignment="Top" SelectionChanged="changeVertAlign" Grid.Row="2" Grid.Column="5" Width="100" Height="50" Margin="0,0,0,10"> <ListBoxItem>Top</ListBoxItem> <ListBoxItem>Bottom</ListBoxItem> <ListBoxItem>Center</ListBoxItem> <ListBoxItem>Stretch</ListBoxItem> </ListBox> <StackPanel Grid.ColumnSpan="6" Grid.Row="3" Name="sp1" Background="Yellow"> <Button>One</Button> <Button>Two</Button> <Button>Three</Button> <Button>Four</Button> <Button>Five</Button> <Button>Six</Button> </StackPanel> </Grid> </Border> </Window> //File:Window.xaml.vb Imports System Imports System.Windows Imports System.Windows.Controls Imports System.Windows.Documents Namespace StackPanel_layout Public Partial Class Window1 Inherits Window Public Sub changeOrientation(sender As Object, args As SelectionChangedEventArgs) Dim li As ListBoxItem = TryCast(TryCast(sender, ListBox).SelectedItem, ListBoxItem) If li.Content.ToString() = "Horizontal" Then sp1.Orientation = System.Windows.Controls.Orientation.Horizontal ElseIf li.Content.ToString() = "Vertical" Then sp1.Orientation = System.Windows.Controls.Orientation.Vertical End If End Sub Public Sub changeHorAlign(sender As Object, args As SelectionChangedEventArgs) Dim li As ListBoxItem = TryCast(TryCast(sender, ListBox).SelectedItem, ListBoxItem) If li.Content.ToString() = "Left" Then sp1.HorizontalAlignment = System.Windows.HorizontalAlignment.Left ElseIf li.Content.ToString() = "Right" Then sp1.HorizontalAlignment = System.Windows.HorizontalAlignment.Right ElseIf li.Content.ToString() = "Center" Then sp1.HorizontalAlignment = System.Windows.HorizontalAlignment.Center ElseIf li.Content.ToString() = "Stretch" Then sp1.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch End If End Sub Public Sub changeVertAlign(sender As Object, args As SelectionChangedEventArgs) Dim li As ListBoxItem = TryCast(TryCast(sender, ListBox).SelectedItem, ListBoxItem) If li.Content.ToString() = "Top" Then sp1.VerticalAlignment = System.Windows.VerticalAlignment.Top ElseIf li.Content.ToString() = "Bottom" Then sp1.VerticalAlignment = System.Windows.VerticalAlignment.Bottom ElseIf li.Content.ToString() = "Center" Then sp1.VerticalAlignment = System.Windows.VerticalAlignment.Center ElseIf li.Content.ToString() = "Stretch" Then sp1.VerticalAlignment = System.Windows.VerticalAlignment.Stretch End If End Sub End Class End Namespace