WPF DataGrid ширина столбца авто и полоса прокрутки
У меня есть DataGrid со многими столбцами.
Я хочу Width="Auto"
с полосой прокрутки, показывающей все, если окно уже, чем все столбцы. Если окно шире, я хочу, чтобы столбцы охватывали пустое пространство, чтобы не было мертвого пространства.
в основном я хочу, чтобы минимальная ширина столбца полностью соответствовала содержимому или заголовку. И расширить до большего, если окно шире.
2 ответов
для того, чтобы "заполнить" все горизонтальное пространство в WPF DataGrid
Как вы указали, убедитесь, что эти свойства установлены в XAML:
<DataGrid
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
ColumnWidth="*" />
в 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 и отлично работает.