Cómo: Crear aplicaciones cuyo tamaño pueda ser modificado por el usuario con GridSplitter
Puede utilizar el control GridSplitter junto con el control contenedor Grid para crear diseños de ventanas cuyo tamaño pueda ajustar el usuario en tiempo de ejecución. Por ejemplo, en una aplicación que tiene una interfaz dividida en áreas, el usuario puede arrastrar un divisor para agrandar una de ellas, dependiendo de la que desee ver mejor.
Cuando se agrega un control GridSplitter a un control Grid, el primero es un elemento secundario del control de cuadrícula y debe colocarse en una fila y una columna como cualquier otro control secundario. GridSplitter debe tener un ancho o alto distinto de cero, para que el usuario pueda agarrarlo y arrastrarlo en el tiempo de ejecución.
Algunos procedimientos recomendados para GridSplitter incluyen los siguientes:
Coloque GridSplitter en una fila o columna dedicada que no contenga ningún otro control.
Establezca el alto de la fila o el ancho de la columna que contiene el GridSplitter en Auto.
Dedique un control Grid único al control GridSplitter. Agregue paneles contenedores adicionales a Grid para completar el diseño.
Para crear un GridSplitter vertical
En la Vista de diseño, seleccione Grid. Para obtener más información, vea Cómo: Seleccionar y mover elementos en la superficie de diseño.
Agregue una columna donde desee que GridSplitter aparezca. Para obtener más información, vea Cómo: Agregar filas y columnas a una cuadrícula.
Nota
En ocasiones, puede que sea difícil colocar filas y columnas en el diseñador. En ese caso, puede configurar Grid utilizando el editor XAML. Vea un ejemplo de marcado XAML en la sección de ejemplo al final de este tema.
En el Cuadro de herramientas, arrastre un control GridSplitter hasta la columna agregada.
En la ventana Propiedades, establezca las siguientes propiedades de GridSplitter:
Propiedad
Valor
Valores posibles
ResizeBehavior
BasedOnAlignment
BasedOnAlignment
CurrentAndNext
PreviousAndCurrent
PreviousAndNext
ResizeDirection
Columnas
Auto
Columna
Filas
Grid.Column
La columna en la que desea colocar GridSplitter. (La numeración de columnas es de base cero.)
Grid.ColumnSpan
1
Grid.Row
0
Grid.RowSpan
Número total de filas de Grid.
Width
Un número distinto de cero. Por ejemplo, 10.
Height
Auto
HorizontalAlignment
Stretch
Left
Center
Right
Stretch
VerticalAlignment
Stretch
Top
Center
Bottom
Stretch
Margin
0
En la vista de diseño, seleccione Grid.
Establezca la propiedad Width del objeto ColumnDefinition que contiene GridSplitter en Auto.
Para crear un GridSplitter horizontal
En la Vista de diseño, seleccione Grid. Para obtener más información, vea Cómo: Seleccionar y mover elementos en la superficie de diseño.
Agregue una fila donde desee que aparezca GridSplitter. Para obtener más información, vea Cómo: Agregar filas y columnas a una cuadrícula.
Nota
En ocasiones, puede que sea difícil colocar filas y columnas en el diseñador. En ese caso, puede configurar Grid utilizando el editor XAML. Vea un ejemplo de marcado XAML en la sección de ejemplo al final de este tema.
En el Cuadro de herramientas, arrastre un control GridSplitter hasta la fila que ha agregado.
En la ventana Propiedades, establezca las siguientes propiedades de GridSplitter:
Propiedad
Valor
Valores posibles
ResizeBehavior
BasedOnAlignment
BasedOnAlignment
CurrentAndNext
PreviousAndCurrent
PreviousAndNext
ResizeDirection
Filas
Auto
Columna
Filas
Grid.Column
0
Grid.ColumnSpan
Número total de columnas de Grid.
Grid.Row
Fila donde desea colocar GridSplitter. (La numeración de filas es de base cero.)
Grid.RowSpan
1
Width
Auto
Height
Un número distinto de cero. Por ejemplo, 10.
HorizontalAlignment
Stretch
Left
Center
Right
Stretch
VerticalAlignment
Stretch
Top
Center
Bottom
Stretch
Margin
0
En la vista de diseño, seleccione Grid.
Establezca la propiedad Height del objeto RowDefinition que contiene GridSplitter en Auto.
Ejemplo
El XAML siguiente crea un GridSplitter horizontal:
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
<RowDefinition MinHeight="70" />
</Grid.RowDefinitions>
<DockPanel Grid.Row="0" Grid.RowSpan="1" HorizontalAlignment="Stretch" Margin="0" Background="LightBlue" Name="DockPanel1">
</DockPanel>
<GridSplitter Grid.Row="1" Grid.RowSpan="1" ResizeDirection="Rows" Width="Auto" Height="10" HorizontalAlignment="Stretch" Margin="0" Name="GridSplitter1" />
<Grid Grid.Row="2" HorizontalAlignment="Stretch" Margin="0" Background="PaleGoldenrod" Name="Grid1">
</Grid>
</Grid>
Vea también
Tareas
Tutorial: Crear una aplicación cuyo tamaño pueda ser modificado mediante WPF Designer