<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.