DataGrid 컨트롤의 크기 조정 옵션Sizing Options in the DataGrid Control

크기 자체의 크기를 제어 하는 데 다양 한 옵션을 사용할 수 있습니다 DataGrid .Various options are available to control how the DataGrid sizes itself. DataGrid , 및 개별 행과 열은 DataGrid 내용에 맞게 자동으로 크기를 설정 하거나 특정 값으로 설정할 수 있습니다.The DataGrid, and individual rows and columns in the DataGrid, can be set to size automatically to their contents or can be set to specific values. 기본적으로는 DataGrid 내용의 크기에 맞게 확장 되 고 축소 됩니다.By default, the DataGrid will grow and shrink to fit the size of its contents.

DataGrid 크기 조정Sizing the DataGrid

자동 크기 조정을 사용 하는 경우 주의 사항Cautions When Using Automatic Sizing

기본적으로 Height Width 의 및 속성은 DataGrid Double.NaN (XAML의 경우)로 설정 되 Auto 고는 해당 DataGrid 콘텐츠 크기에 맞게 조정 됩니다.By default, the Height and Width properties of the DataGrid are set to Double.NaN ("Auto" in XAML), and the DataGrid will adjust to the size of its contents.

또는와 같은 자식 항목의 크기를 제한 하지 않는 컨테이너 내부에 배치 되 면 Canvas StackPanelDataGrid 컨테이너의 표시 범위를 벗어나 확장 되 고 스크롤 막대는 표시 되지 않습니다.When placed inside a container that does not restrict the size of its children, such as a Canvas or StackPanel, the DataGrid will stretch beyond the visible bounds of the container and scrollbars will not be shown. 이 조건에는 유용성 및 성능에 영향을 미칩니다.This condition has both usability and performance implications.

데이터 집합에 바인딩되는 경우 HeightDataGrid 이 제한 되지 않은 경우 바인딩된 데이터 집합의 각 데이터 항목에 대 한 행이 계속 추가 됩니다.When bound to a data set, if the Height of the DataGrid is not restricted, it will continue to add a row for each data item in the bound data set. 이렇게 하면 행이 DataGrid 추가 될 때이 응용 프로그램의 표시 범위를 벗어날 수 있습니다.This can cause the DataGrid to grow outside the visible bounds of your application as rows are added. DataGrid Height 새 행에 맞게 계속 증가 하므로이 경우에 스크롤 막대를 표시 하지 않습니다.The DataGrid will not show scrollbars in this case because its Height will continue to grow to accommodate the new rows.

의 각 행에 대해 개체가 만들어집니다 DataGrid .An object is created for each row in the DataGrid. 큰 데이터 집합으로 작업 하 고가 자동으로 크기를 자동으로 조정 하도록 허용 하는 경우 DataGrid 많은 수의 개체를 만들면 응용 프로그램의 성능에 영향을 줄 수 있습니다.If you are working with a large data set and you allow the DataGrid to automatically size itself, the creation of a large number of objects may affect the performance of your application.

대량 데이터 집합으로 작업할 때 이러한 문제를 방지 하려면의를 구체적으로 설정 Height DataGrid 하거나와 같이를 제한 하는 컨테이너에 저장 하는 것이 좋습니다 Height Grid .To avoid these issues when you work with large data sets, it is recommended that you specifically set the Height of the DataGrid or place it in a container that will restrict its Height, such as a Grid. Height이 제한 되 면는 DataGrid 지정 된 내에 맞는 행만 만들며 Height 새 데이터를 표시 하기 위해 필요에 따라 해당 행을 재생 합니다.When the Height is restricted, the DataGrid will only create the rows that will fit within its specified Height, and will recycle those rows as needed to display new data.

DataGrid 크기 설정Setting the DataGrid Size

DataGrid 지정 된 경계 내에서 자동으로 크기를 조정 하도록 설정 하거나 DataGrid 특정 크기로 설정할 수 있습니다.The DataGrid can be set to automatically size within specified boundaries, or the DataGrid can be set to a specific size. 다음 표에서는 크기를 제어 하기 위해 설정할 수 있는 속성을 보여 줍니다 DataGrid .The following table shows the properties that can be set to control the DataGrid size.

속성Property DescriptionDescription
Height 의 특정 높이를 설정 합니다 DataGrid .Sets a specific height for the DataGrid.
MaxHeight 높이의 상한을 설정 합니다 DataGrid .Sets the upper bound for the height of the DataGrid. DataGrid 이 높이에 도달할 때까지 세로로 증가 합니다.The DataGrid will grow vertically until it reaches this height.
MinHeight 높이의 하 한을 설정 합니다 DataGrid .Sets the lower bound for the height of the DataGrid. DataGrid 이 높이에 도달할 때까지 세로로 축소 됩니다.The DataGrid will shrink vertically until it reaches this height.
Width 의 특정 너비를 설정 합니다 DataGrid .Sets a specific width for the DataGrid.
MaxWidth 의 너비에 대 한 상한을 설정 합니다 DataGrid .Sets the upper bound for the width of the DataGrid. DataGrid이 너비에 도달할 때까지가 가로로 증가 합니다.The DataGrid will grow horizontally until it reaches this width.
MinWidth 의 너비에 대 한 하 한을 설정 합니다 DataGrid .Sets the lower bound for the width of the DataGrid. DataGrid이 너비에 도달할 때까지 가로 방향으로 축소 됩니다.The DataGrid will shrink horizontally until it reaches this width.

행 및 행 머리글 크기 조정Sizing Rows and Row Headers

DataGrid 행DataGrid Rows

기본적으로 DataGrid 행의 Height 속성은 Double.NaN ( Auto XAML에서는 "")로 설정 되 고 행 높이는 해당 내용의 크기로 확장 됩니다.By default, a DataGrid row's Height property is set to Double.NaN ("Auto" in XAML), and the row height will expand to the size of its contents. 속성을 설정 하 여에 있는 모든 행의 높이를 DataGrid 지정할 수 있습니다 DataGrid.RowHeight .The height of all rows in the DataGrid can be specified by setting the DataGrid.RowHeight property. 사용자는 행 머리글 구분선을 끌어 행 높이를 변경할 수 있습니다.Users can change the row height by dragging the row header dividers.

DataGrid 행 머리글DataGrid Row Headers

행 머리글을 표시 하려면 HeadersVisibility 속성을 또는로 설정 해야 DataGridHeadersVisibility.Row 합니다 DataGridHeadersVisibility.All .To display row headers, the HeadersVisibility property must be set to DataGridHeadersVisibility.Row or DataGridHeadersVisibility.All. 기본적으로 행 머리글이 표시 되 고 내용에 맞게 자동으로 크기가 조정 됩니다.By default, row headers are displayed and they automatically size to fit their content. 속성을 설정 하 여 행 머리글에 특정 너비를 지정할 수 있습니다 DataGrid.RowHeaderWidth .The row headers can be given a specific width by setting the DataGrid.RowHeaderWidth property.

열 및 열 머리글 크기 조정Sizing Columns and Column Headers

DataGrid 열DataGrid Columns

DataGrid 및 구조체의 값을 사용 하 여 DataGridLength DataGridLengthUnitType 절대 또는 자동 크기 조정 모드를 지정 합니다.The DataGrid uses values of the DataGridLength and the DataGridLengthUnitType structure to specify absolute or automatic sizing modes.

다음 표에서는 구조체에서 제공 하는 값을 보여 줍니다 DataGridLengthUnitType .The following table shows the values provided by the DataGridLengthUnitType structure.

이름Name DescriptionDescription
Auto 기본 자동 크기 조정 모드는 DataGrid 셀과 열 머리글의 내용에 따라 열 크기를 조정 합니다.The default automatic sizing mode sizes DataGrid columns based on the contents of both cells and column headers.
SizeToCells 셀 기반 자동 크기 모드를 크기 조정 DataGrid 열 머리글을 포함 하지 않고 열에서 셀의 내용에 기반 합니다.The cell-based automatic sizing mode sizes DataGrid columns based on the contents of cells in the column, not including column headers.
SizeToHeader 머리글 기반 자동 크기 모드를 크기 조정 DataGrid 열만 열 머리글의 내용에 기반 합니다.The header-based automatic sizing mode sizes DataGrid columns based on the contents of column headers only.
Pixel 픽셀 기반 크기 조정 모드는 DataGrid 제공 된 숫자 값을 기준으로 열 크기를 조정 합니다.The pixel-based sizing mode sizes DataGrid columns based on the numeric value provided.
Star 별 크기 조정 모드는 사용 가능한 공간을 가중치가 적용 된 비율로 배포 하는 데 사용 됩니다.The star sizing mode is used to distribute available space by weighted proportions.

XAML에서 별모양 값은 n *로 표현 됩니다. 여기서 n은 숫자 값을 나타냅니다.In XAML, star values are expressed as n* where n represents a numeric value. 1 * 은와 동일 * 합니다.1* is equivalent to *. 예를 들어의 두 열 DataGrid 너비가 및 2 인 경우 * * 첫 번째 열은 사용 가능한 공간의 한 부분을 받고 두 번째 열은 사용 가능한 공간의 두 부분을 받습니다.For example, if two columns in a DataGrid had widths of * and 2*, the first column would receive one portion of the available space and the second column would receive two portions of the available space.

DataGridLengthConverter클래스를 사용 하 여 숫자 또는 문자열 값과 값 사이에 데이터를 변환할 수 있습니다 DataGridLength .The DataGridLengthConverter class can be used to convert data between numeric or string values and DataGridLength values.

기본적으로 속성은 DataGrid.ColumnWidth 로 설정 되 SizeToHeaderDataGridColumn.Width 속성은로 설정 됩니다 Auto .By default, the DataGrid.ColumnWidth property is set to SizeToHeader, and the DataGridColumn.Width property is set to Auto. 크기 조정 모드를 또는로 설정 Auto 하면 SizeToCells 열이 가장 넓은 표시 되는 콘텐츠의 너비로 늘어납니다.When the sizing mode is set to Auto or SizeToCells, columns will grow to the width of their widest visible content. 스크롤할 때 현재 열 크기 보다 큰 내용이 표시 되 면 이러한 크기 조정 모드에서 열이 확장 됩니다.When scrolling, these sizing modes will cause columns to expand if content that is larger than the current column size is scrolled into view. 콘텐츠 보기에서 스크롤 된 후에 열 축소 되지 않습니다.The column will not shrink after the content is scrolled out of view.

의 열을 DataGrid 지정 된 경계 내 에서만 자동 크기 조정으로 설정 하거나 열을 특정 크기로 설정할 수도 있습니다.Columns in the DataGrid can also be set to automatically size only within specified boundaries, or columns can be set to a specific size. 다음 표에서는 열 크기를 제어 하기 위해 설정할 수 있는 속성을 보여 줍니다.The following table shows the properties that can be set to control column sizes.

속성Property DescriptionDescription
DataGrid.MaxColumnWidth 의 모든 열에 대 한 상한을 설정 합니다 DataGrid .Sets the upper bound for all columns in the DataGrid.
DataGridColumn.MaxWidth 개별 열에 대 한 상한을 설정 합니다.Sets the upper bound for an individual column. DataGrid.MaxColumnWidth를 재정의합니다.Overrides DataGrid.MaxColumnWidth.
DataGrid.MinColumnWidth 의 모든 열에 대 한 하 한을 설정 DataGrid 합니다.Sets the lower bound for all columns in the DataGrid.
DataGridColumn.MinWidth 개별 열에 대 한 하 한을 설정 합니다.Sets the lower bound for an individual column. DataGrid.MinColumnWidth를 재정의합니다.Overrides DataGrid.MinColumnWidth.
DataGrid.ColumnWidth 의 모든 열에 대해 특정 너비를 설정 합니다 DataGrid .Sets a specific width for all columns in the DataGrid.
DataGridColumn.Width 개별 열에 대 한 특정 너비를 설정 합니다.Sets a specific width for an individual column. DataGrid.ColumnWidth를 재정의합니다.Overrides DataGrid.ColumnWidth.

DataGrid 열 머리글DataGrid Column Headers

기본적으로 DataGrid 열 머리글이 표시 됩니다.By default, DataGrid column headers are displayed. 열 머리글을 숨기려면 속성을 HeadersVisibility 또는로 설정 해야 합니다 DataGridHeadersVisibility.Row DataGridHeadersVisibility.None .To hide column headers, the HeadersVisibility property must be set to DataGridHeadersVisibility.Row or DataGridHeadersVisibility.None. 기본적으로 열 머리글이 표시 되 면 해당 콘텐츠에 맞게 자동으로 크기가 조정 됩니다.By default, when column headers are displayed, they automatically size to fit their content. 열 머리글에는 속성을 설정 하 여 특정 높이를 지정할 수 있습니다 DataGrid.ColumnHeaderHeight .The column headers can be given a specific height by setting the DataGrid.ColumnHeaderHeight property.

마우스로 크기 조정Resizing with the Mouse

사용자는 DataGrid 행 또는 열 머리글 구분선을 끌어 행과 열의 크기를 조정할 수 있습니다.Users can resize DataGrid rows and columns by dragging the row or column header dividers. 에서는 DataGrid 행 또는 열 머리글 구분선을 두 번 클릭 하 여 행과 열의 자동 크기 조정을 지원 합니다.The DataGrid also supports automatic resizing of rows and columns by double-clicking the row or column header divider. 사용자가 특정 열의 크기를 조정 하지 않도록 하려면 DataGridColumn.CanUserResize false 개별 열에 대해 속성을로 설정 합니다.To prevent a user from resizing particular columns, set the DataGridColumn.CanUserResize property to false for the individual columns. 사용자가 모든 열의 크기를 조정 하지 못하게 하려면 DataGrid.CanUserResizeColumns 속성을로 설정 false 합니다.To prevent users from resizing all columns, set the DataGrid.CanUserResizeColumns property to false. 사용자가 모든 행의 크기를 조정 하지 못하게 하려면 DataGrid.CanUserResizeRows 속성을로 설정 false 합니다.To prevent users from resizing all rows, set the DataGrid.CanUserResizeRows property to false.

참고 항목See also