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