是否可以拉伸列或最后一列以填满数据网格的所有可用空间?
<DataGrid Grid.Row="0" AutoGenerateColumns="True" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Name="dataGrid1" ItemsSource="{Binding Customers}" />
我的列是自动生成的。
是的,我认为你正在寻找 AutoSizeMode 属性。
int n = grid.Columns.Count;
grid.Columns[n].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
编辑:尝试将宽度设置为 "*",如下所示。如果您的列是自动生成的,则必须在代码中执行此操作。
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Width="Auto" />
<DataGridTextColumn Width="*" />
</DataGrid.Columns>
</DataGrid>
由于我在这个主题上找到的大多数答案都涉及XAML,因此这里提供一个C#的解决方案,以将数据网格中的所有列设置为填充可用空间。
foreach (var column in this.datagrid.Columns)
{
column.Width = new DataGridLength(1, DataGridLengthUnitType.Star);
}
DataGrid.Columns[x].Width = DataGridLength.Auto;
数据表格.列[x].宽度 = 数据表格长度.自动;
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);
}
}
DataGrid
与Winforms中的DataGridView
完全相同。请参阅此链接:http://msdn.microsoft.com/en-us/library/ms750559.aspx - user807566