Mega Code Archive

 
Categories / VB.Net Tutorial / WPF
 

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 />           </Grid.ColumnDefinitions>           <Grid.RowDefinitions>             <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