<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Header" Style="{StaticResource TitleTextBlockStyle}" Margin="10"/>
<Button Grid.Row="0" Grid.Column="1" Content="Action Button" HorizontalAlignment="Right" Margin="10"/>
<StackPanel Grid.Row="1" Grid.Column="0" Orientation="Vertical" Margin="10">
<TextBlock Text="Sidebar Content" FontWeight="Bold"/>
<ListBox ItemsSource="{x:Bind NavigationItems}" SelectionChanged="Navigation_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate x:DataType="local:NavItem">
<TextBlock Text="{x:Bind Name}" Padding="5"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
<Border Grid.Row="1" Grid.Column="1" Background="LightGray" CornerRadius="5" Margin="10">
<TextBlock x:Name="ContentTextBlock" Text="Main Content Area" Padding="15" VerticalAlignment="Center" HorizontalAlignment="Center"/>
</Border>
<TextBlock Grid.Row="1" Grid.Column="2" Text="Status" VerticalAlignment="Bottom" Margin="10"/>
</Grid>
Column 1*
Column 2*
Column Auto
Column 1*
Column 2*
Column Auto
Grid.ColumnDefinitions are set with weights. The first column takes up 1 fraction of the available space, the second takes 2 fractions, and the third adjusts its width to fit its content. Resize your browser window or use the slider to see how the grid columns adapt.