2010-07-20 8 views
7

Me gustaría tener una cuadrícula con una fila en la parte superior e inferior con etiquetas o botones. En el medio planeo usar un ListBox. Quiero que ListBox se expanda para usar todo el espacio disponible. Sería bueno no codificar la altura de las otras dos filas. Mi XAML está abajo. ¿Cómo puedo hacer que la sección central se expanda automáticamente? Gracias.WPF El panel de diseño de cuadrícula con la altura de fila establecida en "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> 

Respuesta

11

Intente configurar la fila del medio a esta ...

<RowDefinition Height="*" /> 
+0

Muchas gracias. Muy útil. – Nate

+1

@Nate. Los accesos directos "*" son incluso más sofisticados que esto. No necesita nada más en este ejemplo, pero si tuviera una grilla compleja donde necesitara varias filas o columnas para expandirse en proporciones diferentes, podría tener "2 *" para una y "5 *" para otra. Si los dejó a ambos en "*" (que es una forma abreviada de decir 1 *), las dos filas dividirían el espacio expandido entre ellos por igual. Cheers – Berryl

+0

Gracias Berryl. Eso es muy interesante. – Nate

3

Reemplazar el medio

<RowDefinition Height="Auto" /> 

con

<RowDefinition Height="*" /> 
Cuestiones relacionadas