我有一个数据网格,其列宽设置为" Auto"。加载数据网格时,列的大小正确。但是,当我将窗口宽度更改为小于datagrid的大小时,它会调整列的大小,以便尝试使数据网格中的所有内容都适合。当我将窗口大小扩展回完整大小时,所有datagrid列都不再按内容调整大小,而是全部设置为相同的宽度,就好像宽度现在设置为" *"。
有没有办法防止这种情况发生?我尝试过CanUserResizeColumns =" False"并将列的宽度设置为硬编码值。
我也在使用materialdesigninxaml,不确定这是否导致了这个问题?
答案 0 :(得分:2)
这确实是它在WPF中的工作方式。如果您提前知道您想要的尺寸,则应相应地指定它。因此,您需要指定width="Auto"
而不是width="123"
。
你可以尝试保持相对大小调整,例如:
width="2*" .... width="*" ... width="10*"
这将确保第1列的大小是第2列的两倍,第3列是第2列的宽度的10倍。此外,除了minWidth
和maxWidth
之外,您还可以获得所需的位置成为。祝你好运
答案 1 :(得分:1)
检查以确保任何列定义的宽度为“*”