Ширина столбца WPF DataGrid Авто и панель прокрутки
У меня есть DataGrid со многими столбцами.
Я хочу Width="Auto"
с полосой прокрутки, показывающей все, если окно уже, чем все столбцы. Если окно более широкое, я хочу, чтобы столбцы охватывали пустое пространство, поэтому мертвое пространство отсутствует.
В принципе, я хочу, чтобы минимальная ширина столбца полностью соответствовала содержимому или заголовку. И расширяйтесь до большего, если окно будет шире.
Ответы
Ответ 1
В XAML установите DataGrid ColumnWidth="Auto"
В конструкторе UserControl добавьте
dataGrid.Loaded += (s, e) => { // Column widths
dataGrid.Columns.AsParallel().ForEach(column => {
column.MinWidth = column.ActualWidth;
column.Width = new DataGridLength(1, DataGridLengthUnitType.Star);
});
};
Использование этого с пользовательским DataGrid и отлично работает.
Ответ 2
Чтобы "заполнить" все горизонтальное пространство в WPF DataGrid
, как вы указали, убедитесь, что эти свойства установлены в XAML:
<DataGrid
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
ColumnWidth="*" />