web-dev-qa-db-fra.com

Définition dynamique de la largeur / hauteur de colonne / ligne de grille

J'ai besoin de créer une grille WPF dynamiquement à partir du code derrière. Cela va bien et je peux le faire pour que je définisse les largeurs de contenu, mais ce que je dois faire est de les définir de sorte que lorsque je redimensionne la fenêtre, les contrôles sont redimensionnés dynamiquement

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

Cela produira XAML

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

Mais ce dont j'ai besoin, c'est d'utiliser un * ou un point d'interrogation, c'est-à-dire.

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

Mais le WidthValue ne prend pas en charge un * ou un point d'interrogation a lors de la création de code derrière?

19
Welsh King

Vous pouvez le spécifier comme ceci:

Pour les colonnes de taille automatique:

GridLength.Auto

Pour les colonnes de taille étoile:

new GridLength(1,GridUnitType.Star)
26
ionden

Il existe 3 types de définition de la largeur sur Grid ColumnDefinitions:

Pour la colonne de pourcentage:

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

En xaml:

<ColumnDefinition Width="1*"/>

Pour la colonne de pixels

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

En xaml:

<ColumnDefinition Width="10"/>

Pour la colonne automatique

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

En xaml:

<ColumnDefinition Width="Auto"/>

J'espère que ça aide!

6
Jamaxack

Je pense que cela peut aider:

pour la colonne automatique:

ColumnDefinition cd = new ColumnDefinition();
cd.Width = GridLength.Auto;

ou pour une longueur de grille proportionnelle:

ColumnDefinition cd = new ColumnDefinition();
cd.Width = new GridLength(1, GridUnitType.Star);

ou regardez: http://msdn.Microsoft.com/en-us/library/system.windows.gridlength.aspx et http://msdn.Microsoft.com/en -us/library/system.windows.gridunittype.aspx

Greez Shounbourgh

6
Shounbourgh