Dans WPF, il est un moyen de faire un StackPanel avec des colonnes alignés comme une Grille?
Par exemple, je pourrais faire quelque chose comme ceci:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Width="Auto">
<RowDefinition Width="Auto">
<RowDefinition Width="Auto">
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0">Header 1</TextBlock>
<TextBox Grid.Row="0" Grid.Column="1" MaxLines="1" />
<Button Grid.Row="0" Grid.Column="2">Send</Button>
<Button Grid.Row="0" Grid.Column="3">Save</Button>
<TextBlock Grid.Row="1" Grid.Column="0">Header 2</TextBlock>
<TextBox Grid.Row="1" Grid.Column="1" MaxLines="1" />
<Button Grid.Row="1" Grid.Column="2">Send</Button>
<Button Grid.Row="1" Grid.Column="3">Save</Button>
<TextBlock Grid.Row="2" Grid.Column="0">Header 3</TextBlock>
<TextBox Grid.Row="2" Grid.Column="1" MaxLines="1" />
<Button Grid.Row="2" Grid.Column="2">Send</Button>
<Button Grid.Row="2" Grid.Column="3">Save</Button>
</Grid>
Ou je pourrais faire quelque chose comme ceci:
<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>Header 1</TextBlock>
<TextBox MaxLines="1" />
<Button>Send</Button>
<Button>Save</Button>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>Header 2</TextBlock>
<TextBox MaxLines="1" />
<Button>Send</Button>
<Button>Save</Button>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock>Header 3</TextBlock>
<TextBox MaxLines="1" />
<Button>Send</Button>
<Button>Save</Button>
</StackPanel>
<StackPanel>
Sauf que je veux être en mesure de manipuler facilement les lignes (ajouter de nouvelles lignes, bouger les lignes, etc...) tout comme dans le StackPanel, tout en gardant les colonnes alignées correctement, tout comme dans la Grille.
OriginalL'auteur Matt | 2012-08-29
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser de nombreux une ligne
Grids
avec taille de partage sur les colonnes. Il devient bavard quand fait sans aucun contrôle, de sorte que vous peut encapsuler la logique (comme la création de colonnes et de l'attributionGrid.Column
) dans un dérivé deItemsControl
ou un attaché à la propriété par exemple.OriginalL'auteur H.B.
Voici une classe j'ai juste mis ensemble pour environ le même but, essentiellement, je voulais être en mesure de mettre un tas d'étiquettes dans la colonne de gauche et des valeurs de types différents (zone de texte, liste déroulante, etc.) sur la droite.
Il n'a que deux colonnes, mais il pourrait être adapté à des numéros différents.
Je peux l'utiliser comme une grille, sauf que je viens de lister les commandes et puis il alterne les colonnes automatiquement:
OnVisualChildrenChanged
dans UWP-terre encore, cependant, si c'est juste une méthode de vous appeler explicitement à la place que prend unIEnumerable<UIElement>
.OriginalL'auteur Overlord Zurg