2013-12-17 22 views
16

Come creare un datagrid wpf riempire tutto lo spazio disponibile e ridimensionare con finestra? Ricorda che il datagrid si trova all'interno di una griglia.Come creare un datagrid wpf riempire tutto lo spazio disponibile e ridimensionarlo con la finestra?

+0

Mostra il tuo codice. Anche la griglia dei tuoi genitori deve essere configurata correttamente, a seconda del 'codice'. –

+0

Come richiesto da @dirt, si prega di mostrare il codice. Generalmente non uso 'Grid' per questo particolare motivo. Ogni volta che ho bisogno di ridimensionare dinamicamente i miei controlli, uso 'DockPanel' e' StackPanel' per organizzare i miei controlli. Offre molta flessibilità poiché 'DockPanel' riempie lo spazio disponibile con l'ultimo bambino logico definito – Sandesh

risposta

18

Dovreste essere in grado di farlo per un datagrid (o per qualsiasi controllo WPF) impostando HorizontalAlignment e VerticalAlignment-Stretch

Se è all'interno di una griglia, si dovrebbe essere in grado di impostare qualcosa di simile

<Grid> <!-- parent grid or whatever --> 
    <DataGrid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ... > 
    </DataGrid> 
</Grid> 
+1

Si potrebbe anche voler impostare' SizeToContent = "WidthAndHeight" 'sul controllo' Window'. –

10
  1. Mai impostare l'altezza o larghezza ad esso o al suo controllo padre
  2. Non c'è bisogno di preoccuparsi sul allineamento orizzontale e verticale in quanto di default orizzontale e verticale Alig le cose sono tese. se sopra sono cose adeguate dovrebbero funzionare :)
+0

Questo ha funzionato per me, evviva! – MushyPeas

4

Rimuovere tutte le proprietà di altezza e larghezza del controllo padre. rimuovere la proprietà orizzontale e verticale. Definisci l'altezza della riga come * della sua griglia principale.

<Grid> 
<Grid.RowDefinitions> 
<RowDefinition Height="*"/> 
<RowDefinition Height="Auto"/> 
</Grid.RowDefinitions> 
    <DataGrid Grid.Row="0" > 
    </DataGrid> 
</Grid> 
+0

Non è una griglia, è DataGrid – Xav987

0

Inserire DataGrid direttamente nella griglia senza eseguire il wrapping con un pannello.

<Grid> 
     <DataGrid> 
     </DataGrid> 
    </Grid>