Pur*_*ish 111 c# wpf xaml datagrid wpf-controls
我在XAML(而不是Silverlight)中使用DataGrids和可调整大小的列,如果用户调整屏幕大小,DataGrid将展开.
目前,如果所有DataGrid列的宽度小于DataGrid的宽度,我会看到一个额外的"列",它不可点击并且没有用处.
有谁知道如何使一列始终调整大小以填充所有剩余空间?
Chr*_*isF 235
如果使用Width="*"该列将填充以扩展可用空间.
如果您希望所有列分割网格,则将其应用于所有列.如果您只想填充剩余空间,只需将其应用于该列,其余为"自动"或特定宽度.
Width="0.25*"如果希望列占可用宽度的1/4,也可以使用(例如).
小智 16
确保您的DataGrid Width设置为类似{Binding Path=ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window,AncestorLevel=1}}.
像这样,你Width="*"对DataGrid.Columns/DataGridXXXXColumn元素属性的设置应该有效.
小智 8
如上所述,ColumnWidth="*"XAML中的DataGrid运行良好.
我在这个上下文中使用它:
<DataGrid ColumnWidth="*" ItemsSource="{Binding AllFolders, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
Run Code Online (Sandbox Code Playgroud)
我的 2 美分 ->
聚会很晚
DataGrid -> Column -> Width="*" 仅当 DataGrid 父容器具有固定宽度时才有效。
示例:我将 DataGrid 放在 Grid -> Column 中,其 width="Auto" 然后 Width="*" 在 DataGrid 中不起作用,但如果您设置 Grid -> Column Width="450" 表示已修复,则它可以正常工作