2012-09-01 12 views
6

He pasado por un montón de código de ejemplo para esto y al final he decidido preguntar esto: Tengo una cuadrícula que tiene un botón con posición fija y otra cuadrícula dentro. La rejilla exterior no tiene un conjunto de ancho/alto. Debería cambiar según la resolución de la pantalla. Puse W/H de la ventana como:Obtener la fila central de la cuadrícula para llenar el espacio disponible

Width = 200; 
Height = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - 5; 

Dentro de la rejilla interna tengo a 3 filas, el superior es un botón (altura automático), el medio es una vista de lista cuya altura puede variar (y que tiene para llenar el espacio disponible) y la última fila consiste en un cuadro de texto que debe permanecer en la parte inferior, de la ventana siempre. El XAML para que esté por debajo:

<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}" Click="Button_Click" Width="32" Height="32" FontSize="16" VerticalAlignment="Center" 
      HorizontalAlignment="Left" FontWeight="Bold" ToolTip="Click here to hide the Sidebar">&gt;</Button> 
<Grid VerticalAlignment="Top" Background="Transparent" Grid.Row="1"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto" /> 
      <!-- This is the settings bar--> 
      <RowDefinition Height="*" /> 
      <!-- This will contain the listbox--> 
      <RowDefinition Height="Auto" /> 
      <!-- This is to maintain vertical arrangement and future use--> 
     </Grid.RowDefinitions> 

     <Button Content="hello" Grid.Row="0" /> 
     <ListView x:Name="lstView" Background="Transparent" Grid.Row="1"/> 
     <TextBox TextWrapping="Wrap" VerticalScrollBarVisibility="Auto" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" Height="50" Margin="2" BorderBrush="Black" Grid.Row="2" />` 

pero yo sólo no puede obtener la fila del medio para llenar todo el espacio y en el cuadro de texto alineado en la parte inferior de la pantalla. ¿Alguien puede sugerir cómo alinear el cuadro de texto con la fila inferior y la fila del medio para llenar toda la altura restante y cómo puedo lograr esto sin establecer explícitamente las alturas mientras cambio los modos de visualización?

+1

El 'RowDefinition's que tiene hará que la segunda fila ocupe todo el espacio restante * en esta' Grilla' *. Ahora necesita ver a su padre y asegurarse de que el padre esté dejando que esta 'Grilla' llene toda la ventana. Veo un 'Grid.Row' en tu' Grid', por lo que el padre probablemente sea otro 'Grid'; ¿Cómo se ve * its * 'RowDefinition'? –

+0

no he agregado ninguna definición de cuadrícula en esa cuadrícula, solo la uso para agregar un botón fijo en el centro de la ventana ... no hay otro uso ... – Dannyboy

Respuesta

0

Si no le dice al Grid tomar todo el espacio disponible no puede distribuirlo, probablemente debería establecer el VerticalAlignment del Grid a Stetch.

+0

hey .... intenté eso antes, pero lo hice no funciona, no hubo cambios en la IU ... – Dannyboy

Cuestiones relacionadas