2010-07-20 14 views
7

Mi piacerebbe avere una griglia con una riga in alto e in basso con etichette o pulsanti al loro interno. Nel mezzo ho intenzione di usare un ListBox. Voglio che la ListBox si espanda per utilizzare tutto lo spazio disponibile. Sarebbe bello non codificare l'altezza delle altre due righe. Il mio XAML è sotto. Come posso espandere automaticamente la sezione centrale? Grazie.WPF Pannello layout griglia con altezza riga impostato su "Auto"

<UserControl x:Class="WpfApplication1.UserControl1" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     mc:Ignorable="d" 
     d:DesignHeight="300" d:DesignWidth="300"> 
<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition /> 
     <ColumnDefinition /> 
     <ColumnDefinition /> 
    </Grid.ColumnDefinitions> 

    <Label Grid.Row="0" 
      Grid.ColumnSpan="3" 
      Content="Top Row" /> 

    <ListBox Grid.Row="1" 
      Grid.ColumnSpan="3" /> 

    <Label Grid.Row="2" 
      Grid.ColumnSpan="3" 
      Content="Bottom Row" /> 
</Grid> 

risposta

11

Prova a impostare la fila centrale di questo ...

<RowDefinition Height="*" /> 
+0

Grazie mille. Molto utile. – Nate

+1

@Nate. Le scorciatoie "*" sono anche più sofisticate di questa. In questo esempio non hai bisogno di altro, ma se disponevi di una griglia complessa in cui avevi bisogno di più righe o colonne per espandersi in proporzioni diverse, potresti avere "2 *" per uno e "5 *" per un altro. Se li hai lasciati entrambi in "*" (che è un modo rapido per dire 1 *), le due righe dividerebbero lo spazio espanso tra di loro allo stesso modo. Cheers – Berryl

+0

Grazie Berryl. È molto interessante. – Nate

3

Sostituire mezzo

<RowDefinition Height="Auto" /> 

con

<RowDefinition Height="*" /> 
Problemi correlati