Stack Panel y DockPanel WPF

El siguiente tipo de Contenedor que sigue al Canvas en grado de complejidas
es el StackPanel. Es uno de los mas usados debido a su facilidad de uso gracias
a su simplicidad.
Este panel ordena los elementos hijos de forma secuencial, es decir de derecha
a izquierda o de arriba a abajo. Para ver un ejemplo sencillo podemos utilizar

el  código  fuente  del  ejemplo  mostrado  en  el  panel  Canvas  y  modificar  el
contenedor  por  un  StackPanel.  Hemos  eliminado  las  propiedades  adjuntas
donde se especificaba la posición realtiva de cada Textbox y añadido un color
de  fondo  para  una  mejor  visualización.  El  código  XAML  quedaría  de  la
siguiente manera:

<Window x:Class="WpfApplication1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1"> 
    <StackPanel Name="mainCanvas" Background="Black"> 
        <TextBox Text="1" Background="Red"/> 
        <TextBox Text="2" Background="GreenYellow" /> 
        <TextBox Text="3" Background="Yellow"/> 
        <TextBox Text="4" Background="AliceBlue"/> 
        <TextBox Text="5" Background="Orange"/> 
        <TextBox Text="6" Background="White"/> 
    </StackPanel> 
</Window> 

Siendo el resultado por defecto el siguiente:

image 

Pudiendo  cambiar  la orientación  de  los  objetos  hijos mediante  la  propiedad

Orientation.

 

image

DockPanel

Definido por las etiquetas <DockPanel></DockPanel>, que es el reemplazo de la propiedad Dock de los controles de versiones anteriores, ahora en WPF, se utilizan paneles para definir las áreas de específicas del formulario. Es rígido con los controles, al colocarlos no es simple manipularlos en su interior, por lo que se recomienda incluir un Canvas o un Grid por comodidad, la importancia de este control es para ubicar las áreas del formulario, las cuales se definen estableciendo las propiedades VerticalAlignment para definir el Top, Center, Bottom o Stretch, y la propiedad HorizontalAlignment para definir el Left, Right, Center, Stretch. Cabe mencionar que al utilizar Stretch en ambas propiedades da un resultado parecido a Fill, también es prudente mencionar que se debe utilizar la propiedad Margin para ubicar bien los paneles en sus límites con otros paneles.

 

<Window x:Class="WpfApplication1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1"> 
    <DockPanel Name="mainPanel"> 
        <Label Content="Label 1 (Top)" DockPanel.Dock="Top" Background="Red" /> 
        <Label Content="Label 2 (Left)" DockPanel.Dock="Left" Background="GreenYellow" /> 
        <Label Content="Label 3 (Right)" DockPanel.Dock="Right" Background="Yellow" /> 
        <Label Content="Label 4 (Bottom" DockPanel.Dock="Bottom" Background="AliceBlue" /> 
        <Label Content="Label 5" Background="Orange" /> 
    </DockPanel> 
</Window> 

image


6 comentarios sobre “Stack Panel y DockPanel WPF”

  1. ¿Existe algunha manera de «declarativamente» decirle a WPF que existe un tamaño mínimo para estos contenedores?

    Lo pregunto pq a veces cuando estas redimensionando una ventana interesa que haya un «tope mínimo» donde el usuario no pueda hacerla más pequeña

    Gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *