2017-03-13 245 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

檢查以確保寬度爲「*」的任何列定義