Answers:
如果使用Width="*"
该列,将填充以扩大可用空间。
如果希望所有列均等地划分网格,则将其应用于所有列。如果您只想填充剩余空间,只需将其应用于该列,其余为“自动”或指定宽度。
Width="0.25*"
如果希望列占用可用宽度的1/4,也可以使用(例如)。
<DataGrid AutoGenerateColumns="True" ColumnWidth="*" ItemsSource={Binding} />
ColumnWidth="*"
在数据网格,并Width="*"
在蹦床网上单人列收到预期的效果
我的2分->
开派对很晚
DataGrid->列-> Width =“ *”仅在DataGrid父容器具有固定宽度时才起作用。
示例:我将DataGrid放在Grid-> Column中,其width =“ Auto”,然后DataGrid中的Width =“ *”不起作用,但是如果您设置Grid-> Column Width =“ 450”则表示固定,则可以正常工作
我添加了HorizontalAlignment =“ Center”(默认值为“ Strech”),它解决了我的问题,因为它使datagrid仅根据需要设置了宽度。(如果有,请删除数据网格的“宽度”设置。)
如果,则不会扩展xaml网格的最后一列以占用剩余空间
AutoGeneratedColumns="True"
。
对于那些寻找C#解决方法的人:
如果出于某种原因需要启用“ AutoGeneratedColumns”,您可以做的一件事情是指定所有列的宽度,但要自动调整大小的列除外(它不会占用剩余空间,但会调整为单元格的内容)。
示例(dgShopppingCart是我的DataGrid):
dgShoppingCart.Columns[0].Visibility = Visibility.Hidden;
dgShoppingCart.Columns[1].Header = "Qty";
dgShoppingCart.Columns[1].Width = 100;
dgShoppingCart.Columns[2].Header = "Product Name"; /*This will be resized to cell content*/
dgShoppingCart.Columns[3].Header = "Price";
dgShoppingCart.Columns[3].Width = 100;
dgShoppingCart.Columns[4].Visibility = Visibility.Hidden;
对我来说,这是一种解决方法,因为当用户最大化Window时,我需要调整DataGrid的大小。
AutoGenerateColumns="True"
?