DataGrid 컨트롤의 크기 조정 옵션

DataGrid 크기 자체를 제어하는 다양한 옵션을 사용할 수 있습니다. DataGridDataGrid의 개별 행과 열은 해당 콘텐츠의 크기로 자동으로 설정하거나 특정 값으로 설정할 수 있습니다. 기본적으로 DataGrid는 콘텐츠의 크기에 맞게 증가 및 축소됩니다.

DataGrid 크기 조정

자동 크기 조정 사용 시 주의 사항

기본적으로 DataGridHeightWidth 속성은 Double.NaN(XAML의 "Auto")으로 설정되고 DataGrid는 콘텐츠 크기에 맞게 조정됩니다.

자식의 크기(예: Canvas 또는StackPanel)를 제한하지 않는 컨테이너 내에 배치하면 DataGrid가 컨테이너의 표시 범위를 넘어 확장되고 스크롤 막대는 표시되지 않습니다. 이 조건은 유용성과 성능에 영향을 줍니다.

데이터 세트에 바인딩된 경우 DataGridHeight가 제한되지 않으면 바인딩된 데이터 세트의 각 데이터 항목에 대한 행을 계속 추가합니다. 이로 인해 행이 추가될 때 DataGrid가 애플리케이션의 표시 범위를 벗어나게 될 수 있습니다. DataGrid는 새로운 행을 수용하기 위해 Height가 계속 증가하므로 이 경우에는 스크롤 막대가 표시되지 않습니다.

DataGrid의 각 행에 대해 개체가 만들어집니다. 큰 데이터 세트로 작업하고 DataGrid가 자동으로 크기를 조정하도록 허용하는 경우 많은 수의 개체를 만들면 애플리케이션의 성능에 영향을 줄 수 있습니다.

큰 데이터 세트로 작업할 때 이러한 문제를 방지하려면 DataGridHeight를 구체적으로 설정하거나 Grid와 같이 Height를 제한하는 컨테이너에 배치하는 것이 좋습니다. 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 열

DataGridDataGridLengthDataGridLengthUnitType 구조체의 값을 사용하여 절대 또는 자동 크기 조정 모드를 지정합니다.

다음 표에서는 DataGridLengthUnitType 구조체에서 제공하는 값을 보여줍니다.

Name 설명
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로 설정합니다.

참고 항목