2017-03-13 200 views
2

我有一个datagrid,其列宽设置为“自动”。加载数据网格时,列的大小是正确的。但是,当我将窗口宽度更改为小于数据网格的大小时,它将调整列的大小以便尝试和适合数据网格中的所有内容。当我将窗口大小扩大为全尺寸时,所有的数据网格列都不再按内容大小设置,而是全部设置为相同的宽度,就好像宽度现在设置为“*”一样。WPF防止datagrid自动调整窗口大小调整大小

有没有办法来防止这种情况发生?我尝试了CanUserResizeColumns =“False”,并将列的宽度设置为硬编码值。

我也使用materialdesigninxaml,不知道这是否造成这种情况?

回答

2

这真的是它在WPF中的工作方式。如果你提前知道你想要的尺寸,你应该相应地指定它。因此,您可以指定width="123"而不是width="Auto"

可以尽量保持相对尺寸如此:

width="2*" .... width="*" ... width="10*" 

这将确保塔1是大小的两倍柱2和柱3为2列此的宽度的10倍,另外还有minWidthmaxWidth应该可以让你在你想去的地方。祝你好运

+0

MinWidth似乎是我的最佳选择。太糟糕了,我现在必须在所有列上设置MinWidth(几乎为100)。 –

+0

@DavidLee您可能可以使用'Style'来设置默认样式,以防所有列的'minWidth'相同。 – bc004346

+0

感谢您的信息。我也会研究使用样式。 –

1

检查以确保宽度为“*”的任何列定义