DataGrid 控制項中的調整大小選項
各種選項可用來控制大小本身的方式 DataGrid 。 中的 DataGrid 、 和 個別資料列和資料行 DataGrid 可以設定為自動調整大小,或可以設定為特定值。 根據預設, DataGrid 將會成長和縮小以符合其內容的大小。
調整 DataGrid 的大小
使用自動調整大小時的注意事項
根據預設, Height 的 DataGrid 和 Width 屬性會設定為 Double.NaN (「 Auto
」 在 XAML 中),而且 DataGrid 會調整為其內容的大小。
放置在未限制其子系大小的容器內時,例如 Canvas 或 StackPanel , DataGrid 將會延伸超過容器的可見界限,而且不會顯示捲軸。 此條件同時具有可用性和效能影響。
系結至資料集時,如果 HeightDataGrid 的 不受限制,它會繼續為系結資料集中的每個資料項目新增一個資料列。 當新增資料列時,這可能會導致 DataGrid 在應用程式可見界限之外成長。 DataGrid在此情況下,不會顯示捲軸, Height 因為它會繼續成長以容納新的資料列。
會針對 中的每個 DataGrid 資料列建立 物件。 如果您正在使用大型資料集,而且允許 DataGrid 自動調整本身大小,則建立大量物件可能會影響應用程式的效能。
若要避免當您使用大型資料集時發生這些問題,建議您特別設定 Height 的 DataGrid ,或將它放在將限制其 Height 的容器中,例如 Grid 。 Height當 受限制時, DataGrid 只會建立符合其指定 Height 內的資料列,並視需要回收這些資料列以顯示新資料。
設定 DataGrid 大小
DataGrid可以設定為在指定界限內自動調整大小,也可以 DataGrid 設定為特定大小。 下表顯示可設定以控制 DataGrid 大小的屬性。
屬性 | 說明 |
---|---|
Height | 設定 的特定高度 DataGrid 。 |
MaxHeight | 設定 的高度 DataGrid 上限。 DataGrid會垂直成長,直到達到這個高度為止。 |
MinHeight | 設定 的高度 DataGrid 下限。 DataGrid會垂直縮小,直到達到這個高度為止。 |
Width | 設定 的特定寬度 DataGrid 。 |
MaxWidth | 設定 的寬度 DataGrid 上限。 DataGrid會水準成長,直到達到此寬度為止。 |
MinWidth | 設定 寬度的 DataGrid 下限。 DataGrid會水準縮小,直到達到此寬度為止。 |
調整資料列和資料列標頭的大小
DataGrid 資料列
根據預設, DataGrid 資料列的 Height 屬性會設定為 Double.NaN (XAML 中的 「 Auto
」),而資料列高度會擴充為其內容的大小。 中所有資料列 DataGrid 的高度可以藉由設定 DataGrid.RowHeight 屬性來指定。 使用者可以拖曳資料列標頭分隔器來變更資料列高度。
DataGrid 資料列標頭
若要顯示資料列標頭, HeadersVisibility 屬性必須設定為 DataGridHeadersVisibility.Row 或 DataGridHeadersVisibility.All 。 根據預設,會顯示資料列標頭,並自動調整大小以符合其內容。 您可以藉由設定 DataGrid.RowHeaderWidth 屬性來指定資料列標頭的特定寬度。
調整資料行和資料行標頭的大小
DataGrid 資料行
會 DataGrid 使用 和 DataGridLengthUnitType 結構的值 DataGridLength 來指定絕對或自動調整大小模式。
下表顯示 結構所提供的 DataGridLengthUnitType 值。
名稱 | 描述 |
---|---|
Auto | 預設的自動調整大小模式會根據資料格和資料行標頭的內容來調整 DataGrid 資料行大小。 |
SizeToCells | 以儲存格為基礎的自動調整大小模式會根據資料行中的資料格內容來調整 DataGrid 資料行大小,不包括資料行標頭。 |
SizeToHeader | 標頭型自動調整大小模式只會根據資料行標頭的內容來調整 DataGrid 資料行的大小。 |
Pixel | 以圖元為基礎的調整大小模式會根據提供的數值來調整 DataGrid 資料行的大小。 |
Star | 星形調整大小模式是用來依加權比例分配可用空間。 在 XAML 中,星號值會以 n* 表示,其中 n 代表數值。 1* 相當於 *。 例如,如果 中的兩個 DataGrid 資料行寬度為 * 和 2*,則第一個資料行會收到可用空間的一個部分,而第二個數據行會接收兩個部分的可用空間。 |
類別 DataGridLengthConverter 可用來在數值或字串值與 DataGridLength 值之間轉換資料。
根據預設,屬性 DataGrid.ColumnWidth 會設定為 SizeToHeader ,而 DataGridColumn.Width 屬性會設定為 Auto 。當調整大小模式設定為 Auto 或 SizeToCells 時,資料行會成長為最寬可見內容的寬度。 捲動時,如果大於目前資料行大小的內容捲動到檢視中,這些調整大小模式會導致資料行展開。 在內容捲動出檢視之後,資料行將不會縮小。
中的資料 DataGrid 行也可以設定為只在指定的界限內自動調整大小,或資料行可以設定為特定大小。 下表顯示可設定為控制資料行大小的屬性。
屬性 | 說明 |
---|---|
DataGrid.MaxColumnWidth | 設定 中所有資料行的 DataGrid 上限。 |
DataGridColumn.MaxWidth | 設定個別資料行的上限。 覆寫 DataGrid.MaxColumnWidth。 |
DataGrid.MinColumnWidth | 設定 中所有資料行的 DataGrid 下限。 |
DataGridColumn.MinWidth | 設定個別資料行的下限。 覆寫 DataGrid.MinColumnWidth。 |
DataGrid.ColumnWidth | 設定 中 DataGrid 所有資料行的特定寬度。 |
DataGridColumn.Width | 設定個別資料行的特定寬度。 覆寫 DataGrid.ColumnWidth。 |
DataGrid 資料行標頭
根據預設, DataGrid 會顯示資料行標頭。 若要隱藏資料行標頭, HeadersVisibility 屬性必須設定為 DataGridHeadersVisibility.Row 或 DataGridHeadersVisibility.None 。 根據預設,當顯示資料行標頭時,它們會自動調整大小以符合其內容。 您可以藉由設定 DataGrid.ColumnHeaderHeight 屬性來指定資料行標頭的特定高度。
使用滑鼠調整大小
使用者可以藉由拖曳資料列或資料行標頭分隔器來調整資料列和資料行的大小 DataGrid 。 DataGrid也支援按兩下資料列或資料行標頭分隔器來自動調整資料列和資料行的大小。 若要防止使用者調整特定資料行的大小,請將個別資料行的 屬性設定 DataGridColumn.CanUserResize 為 false
。 若要防止使用者調整所有資料行的大小,請將 屬性設定 DataGrid.CanUserResizeColumns 為 false
。 若要防止使用者調整所有資料列的大小,請將 屬性設定 DataGrid.CanUserResizeRows 為 false
。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應