2012-03-15 20 views
13

Devo creare una griglia WPF in modo dinamico dal codice sottostante. Questo sta andando bene e posso farlo in modo che ho impostato la larghezza di contenuto, ma quello che devo fare è impostare in modo che quando ho ridimensionare la finestra i controlli sono ri dimensioni dinamicamenteImposta dinamicamente colonna/larghezza riga/altezza

var col = new ColumnDefinition(); 
col.Width = new System.Windows.GridLength(200); 
grid1.ColumnDefinitions.Add(col); 

Questo produrrà XAML

<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="200"></ColumnDefinition> 
</Grid.ColumnDefinitions> 

Ma quello di cui ho bisogno è usare un * o un punto interrogativo, ad es.

<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="*"></ColumnDefinition> 
</Grid.ColumnDefinitions> 

Ma WidthValue non supporta un * o un punto interrogativo a quando si crea dal codice retrostante?

risposta

24

È possibile specificare in questo modo:

Per le colonne di dimensioni auto:

GridLength.Auto 

Per le colonne stella di dimensioni:

new GridLength(1,GridUnitType.Star) 
3

Ci sono 3 tipi di impostazione della larghezza alla griglia ColumnDefinitions:

Per Percentuale Colonna:

yourGrid.ColumnDefinitions[0].Width = new GridLength(1, GridUnitType.Star); 

in XAML:

<ColumnDefinition Width="1*"/> 

Per Pixel Colonna

yourGrid.ColumnDefinitions[0].Width = new GridLength(10, GridUnitType.Pixel); 
yourGrid.ColumnDefinitions[0].Width = new GridLength(10); 

in XAML:

<ColumnDefinition Width="10"/> 

Per Auto Colonna

yourGrid.ColumnDefinitions[0].Width = GridLength.Auto; 

in XAML:

<ColumnDefinition Width="Auto"/> 

Speranza che aiuta!

Problemi correlati