WPF DataGrid列宽度自动和滚动条

时间:2012-11-29 17:49:40

标签: wpf xaml user-interface width

我有一个包含许多列的DataGrid。

如果窗口比所有列都窄,我希望Width="Auto"滚动条显示所有内容。如果窗口更宽,我希望列跨越空白区域,因此没有死区。

基本上我希望列的最小宽度完全适合内容或标题。如果窗口更宽,则扩大到更大。

2 个答案:

答案 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一起使用,效果很好。