2013-07-18 1 views
1

Je voudrais avoir un expandeur en bas qui devrait être redimensionnable via un séparateur de grille.WPF Grid Row hauteur maximale mais redimensionnable via GridSplitter

Mais pas avec la hauteur automatique dans le contenu (parce que la grille de données incluse aura besoin de toute la fenêtre).

Quelle est la résolution?

Mon code: ...

<Expander Grid.Row="1" ExpandDirection="Up" IsExpanded="True"> 
      <Grid> 
       <Grid.RowDefinitions> 
        <RowDefinition MinHeight="4" /> 
        <RowDefinition Height="Auto" /> 
       </Grid.RowDefinitions> 
       <GridSplitter Grid.Row="0" Height="4" ResizeDirection="Rows" 
               HorizontalAlignment="Stretch" VerticalAlignment="Top" ResizeBehavior="CurrentAndNext"/> 
       <DataGrid .../> 
      </Grid> 

J'ai aussi essayé de régler la hauteur maximale des RowDefinition -> Le contenu ne sera pas étirée après le redimensionnement de la GridSplitter.

+0

Pourquoi vous mettez à l'intérieur GridSplitter Content Expander, si vous souhaitez redimensionner l'extension? S'il vous plaît étudier sur le comportement des contrôles et comment les organiser sur l'interface utilisateur. – Nitesh

+0

Le GridSplitter se trouve dans le contenu Expander, car le contenu de l'Expander étendu doit être redimensionnable. Après avoir appuyé sur l'Expander, le contenu doit être réduit. – cproduct

+0

Veuillez lire attentivement les bons ouvrages de WPF sur le fonctionnement des contrôles dans WPF. – Nitesh

Répondre

0

J'utilise le code suivant derrière pour résoudre le problème:

<Grid>.RowDefinitions[1].Height = new GridLength(100, GridUnitType.Pixel);