2011-04-13 11 views
9

tengo la siguiente rejillaGridSplitter no dividir correctamente

<Grid>   
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="*" /> 
    </Grid.RowDefinitions> 

mi GridSplitter está en la fila 3 (fila 4), definen de la siguiente manera:

<GridSplitter Grid.Row="3" 
       ResizeDirection="Rows" 
       Style="{StaticResource HorizontalGridSplitter}" 
       IsTabStop="False" /> 
<Style x:Key="HorizontalGridSplitter" 
     TargetType="{x:Type GridSplitter}"> 
    <Setter Property="Height" 
      Value="4" /> 
    <Setter Property="HorizontalAlignment" 
      Value="Stretch" /> 
    <Setter Property="VerticalAlignment" 
      Value="Stretch" /> 
    <Setter Property="Margin" 
      Value="0" /> 
</Style> 

Cuando me arrastra la división con el fin de dividir fila 2/4, en realidad no divide las filas, parece que la altura de la red se hace más grande.

+0

Tuve un problema similar, desafortunadamente no recuerdo cómo lo resolví ... –

Respuesta

24

El GridSplitter tiene tres comportamientos de cambio de tamaño diferentes, como se puede ver a continuación:

Resize Behaviours

El GridSplitter modifica el tamaño de los especificados dos columnas/filas de acuerdo a la ResizeBehaviour seleccionado y según el espacio disponible para ellos, en su caso usted especificó * altura para la fila anterior y altura automática para la fila siguiente, lo que significa que puede cambiar el tamaño solo de la fila anterior, la fila siguiente siempre permanecerá Auto:

enter image description here

Para solucionar este problema se tiene que fijar la fila antes y la fila después de Width="*" y establecer el comportamiento de cambiar el tamaño a ResizeBehavior="PreviousAndNext" ver el siguiente fragmento de código:

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 
    <GridSplitter Grid.Row="3" ResizeDirection="Rows" 
        Style="{StaticResource HorizontalGridSplitter}"      
        IsTabStop="False" HorizontalAlignment="Stretch" 
        ResizeBehavior="PreviousAndNext" /> 
</Grid> 

También mejor para ajustar el altura de todas las otras filas a Auto o a un valor fijo para evitar comportamientos extraños :)

Cuestiones relacionadas