142 votes

Comment faire en sorte que XAML DataGridColumns remplisse tout le DataGrid?

J'utilise DataGrids en XAML (pas Silverlight) avec des colonnes redimensionnables, le DataGrid se développera si l'utilisateur redimensionne l'écran.

Actuellement, si les largeurs de toutes les colonnes de DataGrid sont inférieures à la largeur de DataGrid, je reçois une "colonne" supplémentaire qui apparaît, qui est non cliquable et ne sert à rien.

Est-ce que quelqu'un sait comment faire une colonne toujours redimensionner pour remplir tout l'espace restant?

293voto

ChrisF Points 74295

Si vous utilisez Width="*" la colonne se remplira pour agrandir l'espace disponible.

Si vous voulez que toutes les colonnes divisent la grille, appliquez-la également à toutes les colonnes. Si vous voulez simplement remplir l’espace restant, appliquez-le à cette colonne, le reste étant "Auto" ou une largeur spécifique.

Vous pouvez également utiliser Width="0.25*" (par exemple) si vous souhaitez que la colonne occupe 1/4 de la largeur disponible.

21voto

MStack Points 21

Assurez-vous que DataGrid a Width défini sur quelque chose comme {Binding Path=ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window,AncestorLevel=1}} .

Comme ça, réglage de Width="*" attribut DataGrid.Columns/DataGridXXXXColumn éléments devraient travailler.

7voto

devdigital Points 22495

Définissez la propriété de colonnes Width sur une largeur proportionnelle telle que *

1voto

pramod Points 1

Cela ne développera pas la dernière colonne de la grille xaml pour occuper l'espace restant si AutoGeneratedColumns="True" .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X