2011-04-14 21 views
7

Estoy usando un GridSplitter en mi ventana de WPF. Sobre el divisor se encuentra TreeView, a continuación se muestra un DockPanel que contiene, entre otras cosas, un cuadro de texto. Cuando selecciono un elemento en TreeView, los contenidos del DockPanel se actualizan mediante el enlace de datos.¿Cómo establecer la altura inicial de un 'panel' GridSplitter?

Según el contenido del cuadro de texto, el panel inferior de la ventana se expande y se contrae en tamaño. Quiero que comience en Height X y permanezca en esa altura a menos que el usuario arrastre el GridSplitter.

Intenté establecer la Altura del DockPanel inferior en el XAML, pero esto corrige la altura del DockPanel para que no cambie de tamaño cuando se mueve el GridSplitter. Tal vez la solución involucra a Grid.Row Heights?

Aquí está la estructura general de mi página.

Window 
    Grid 
    row1 Height="*": TreeView 
    row2 Height="5": GridSplitter 
    row3 Height="auto": DockPanel // gets taller and shorter depending on its content. 
     ... 
     TextBox 

Por cierto: después de haber arrastrado el GridSplitter, el cambio de tamaño deja de sucediendo y la interfaz de usuario se comporta como quiero que lo haga.

Respuesta

8

Establezca explícitamente el Height de la cuadrícula-fila que desea que tenga un tamaño inicial.

En este momento row3 está en Auto y cambia el tamaño del contenido, tan pronto como arrastre el GridSplitter ese valor se reemplaza por la altura actual de la fila.

Cuestiones relacionadas