2012-03-15 28 views
13

Necesito crear una cuadrícula WPF dinámicamente desde el código anterior. Esto va bien y puedo hacerlo para que me puse los anchos de contenido, pero lo que necesito para hacerlas se ajusta de modo que cuando cambio el tamaño de la ventana de los controles son re tamaño dinámicamenteEstablecer columna cuadrícula/Ancho de fila/Altura dinámicamente

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

Esto producirá XAML

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

Pero lo que necesito es usar un * o un signo de interrogación, es decir.

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

Pero el WidthValue no admite un * o signo de interrogación a al crear desde el código?

Respuesta

24

Podría especificar así:

Para las columnas de tamaño de automóviles:

GridLength.Auto 

Para las columnas de tamaño estrella:

new GridLength(1,GridUnitType.Star) 
3

Hay 3 tipos de ajuste de ancho a la cuadrícula ColumnDefinitions:

Para Porcentaje Columna:

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

En xaml:

<ColumnDefinition Width="1*"/> 

para la columna Pixel

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

En xaml:

<ColumnDefinition Width="10"/> 

para la columna Auto

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

en XAML:

<ColumnDefinition Width="Auto"/> 

espero que ayude!

Cuestiones relacionadas