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?
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)
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!
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