【问题标题】:Stretching columns to fill all available space of DataGrid拉伸列以填充 DataGrid 的所有可用空间
【发布时间】:2011-10-16 02:17:01
【问题描述】:

是否可以拉伸列或最后一列以填充数据网格的所有可用空间?

<DataGrid Grid.Row="0" AutoGenerateColumns="True" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Name="dataGrid1"   ItemsSource="{Binding Customers}" />

我的列是自动生成的。

【问题讨论】:

    标签: c# .net wpf gridview


    【解决方案1】:

    是的,我认为您正在寻找 AutoSizeMode 属性。

    int n = grid.Columns.Count;
    grid.Columns[n].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
    

    编辑:尝试将宽度设置为“*”,如下所示。如果您的列是自动生成的,则必须在代码中执行此操作。

    <DataGrid>
      <DataGrid.Columns>
        <DataGridTextColumn Width="Auto" />
        <DataGridTextColumn Width="*" />
      </DataGrid.Columns>
    </DataGrid>
    

    【讨论】:

    • 你的答案不是和winforms有关吗?
    • 是的,但是 WPF 中的 DataGrid 与 Winforms 中的 DataGridView 相同。见此链接:msdn.microsoft.com/en-us/library/ms750559.aspx
    • @user807566:它们不相同,特别是 DataGrid 类中不存在 AutoSizeMode 属性。
    • 对我来说很好用,谢谢。
    • 为什么选择这个答案?为什么它有这么多的赞成票?
    【解决方案2】:

    由于我在该主题上找到的绝大多数答案都涉及 XAML,因此这里有一个 C# 解决方案,用于设置所有列以填充数据网格中的可用空间。

        foreach (var column in this.datagrid.Columns)
        {
            column.Width = new DataGridLength(1, DataGridLengthUnitType.Star);
        }
    

    【讨论】:

      【解决方案3】:

      试试这种方法,我今天早上写的,它健壮可靠,并且允许基于百分比的宽度列占用所有可用空间。 https://stackoverflow.com/a/10526024/41211

      【讨论】:

        【解决方案4】:

        DataGrid.Columns[x].Width = DataGridLength.Auto;

        【讨论】:

          【解决方案5】:

          如果您想将除最后一列之外的所有列宽设置为自动,这应该填充剩余空间,请尝试以下代码:

          for (int i = 0; i < grid.Columns.Count; i++)
          {
              if (i == grid.Columns.Count - 1)
              {
                  grid.Columns[i].Width = new DataGridLength(1, DataGridLengthUnitType.Star);
              }
              else
              {
                  grid.Columns[i].Width = new DataGridLength(1, DataGridLengthUnitType.Auto); 
              }
          }
          

          【讨论】:

            猜你喜欢
            • 2018-04-12
            • 2016-08-07
            • 2021-07-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-10-25
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多