我有一个包含许多列的DataGrid。
如果窗口比所有列都窄,我希望Width="Auto"
滚动条显示所有内容。如果窗口更宽,我希望列跨越空白区域,因此没有死区。
基本上我希望列的最小宽度完全适合内容或标题。如果窗口更宽,则扩大到更大。
答案 0 :(得分:25)
为了按照您的指定“填充”WPF DataGrid
中的所有水平空格,请确保在 XAML 中设置了这些属性:
<DataGrid
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
ColumnWidth="*" />
答案 1 :(得分:8)
在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一起使用,效果很好。