Растяжение столбцов для заполнения всего доступного пространства DataGrid
Можно ли растянуть столбцы или последний столбец, чтобы заполнить все доступное пространство сетки данных?
<DataGrid Grid.Row="0" AutoGenerateColumns="True" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Name="dataGrid1" ItemsSource="{Binding Customers}" />
Мои столбцы создаются автоматически.
Ответы
Ответ 1
Да, я думаю, вы ищете свойство AutoSizeMode.
int n = grid.Columns.Count;
grid.Columns[n].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
Изменить: Попробуйте установить ширину на "*", как показано ниже. Вы должны будете сделать это в коде, если ваши столбцы будут автоматически сгенерированы.
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Width="Auto" />
<DataGridTextColumn Width="*" />
</DataGrid.Columns>
</DataGrid>
Ответ 2
Попробуйте этот подход, ребята, я написал это сегодня утром, надежный и надежный, и позволяет использовать столбцы ширины в процентах, занимая все свободное пространство. fooobar.com/questions/169433/...
Ответ 3
DataGrid.Columns [x].Width = DataGridLength.Auto;
Ответ 4
Поскольку подавляющее большинство ответов, которые я нашел по этой теме, касается XAML, вот решение С#, позволяющее всем столбцам заполнять доступное пространство в сетке данных.
foreach (var column in this.DataGrid.Columns)
{
column.Width = new DataGridLength(1, DataGridLengthUnitType.Star);
}