DataGrid 컨트롤의 크기 조정 옵션
DataGrid 크기 자체를 제어하는 다양한 옵션을 사용할 수 있습니다. DataGrid 및 DataGrid의 개별 행과 열은 해당 콘텐츠의 크기로 자동으로 설정하거나 특정 값으로 설정할 수 있습니다. 기본적으로 DataGrid는 콘텐츠의 크기에 맞게 증가 및 축소됩니다.
DataGrid 크기 조정
자동 크기 조정 사용 시 주의 사항
기본적으로 DataGrid의 Height 및 Width 속성은 Double.NaN(XAML의 "Auto
")으로 설정되고 DataGrid는 콘텐츠 크기에 맞게 조정됩니다.
자식의 크기(예: Canvas 또는StackPanel)를 제한하지 않는 컨테이너 내에 배치하면 DataGrid가 컨테이너의 표시 범위를 넘어 확장되고 스크롤 막대는 표시되지 않습니다. 이 조건은 유용성과 성능에 영향을 줍니다.
데이터 세트에 바인딩된 경우 DataGrid의 Height가 제한되지 않으면 바인딩된 데이터 세트의 각 데이터 항목에 대한 행을 계속 추가합니다. 이로 인해 행이 추가될 때 DataGrid가 애플리케이션의 표시 범위를 벗어나게 될 수 있습니다. DataGrid는 새로운 행을 수용하기 위해 Height가 계속 증가하므로 이 경우에는 스크롤 막대가 표시되지 않습니다.
DataGrid의 각 행에 대해 개체가 만들어집니다. 큰 데이터 세트로 작업하고 DataGrid가 자동으로 크기를 조정하도록 허용하는 경우 많은 수의 개체를 만들면 애플리케이션의 성능에 영향을 줄 수 있습니다.
큰 데이터 세트로 작업할 때 이러한 문제를 방지하려면 DataGrid의 Height를 구체적으로 설정하거나 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 열
DataGrid는 DataGridLength 및 DataGridLengthUnitType 구조체의 값을 사용하여 절대 또는 자동 크기 조정 모드를 지정합니다.
다음 표에서는 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.MaxColumnWidth를 재정의합니다. |
DataGrid.ColumnWidth | DataGrid의 모든 열에 대한 특정 너비를 설정합니다. |
DataGridColumn.Width | 개별 열의 특정 너비를 설정합니다. DataGrid.MaxColumnWidth를 재정의합니다. |
DataGrid 열 머리글
기본적으로 DataGrid 열 머리글이 표시됩니다. 열 머리글을 숨기려면 HeadersVisibility 속성을 DataGridHeadersVisibility.Row 또는 DataGridHeadersVisibility.None으로 설정해야 합니다. 기본적으로 열 머리글이 표시되면 콘텐츠에 맞게 자동으로 크기가 조정됩니다. DataGrid.ColumnHeaderHeight 속성을 설정하여 열 머리글에 특정 높이를 지정할 수 있습니다.
마우스로 크기 조정
사용자는 행 또는 열 머리글 구분 기호를 끌어 DataGrid 행과 열의 크기를 조정할 수 있습니다. DataGrid는 또한 행 또는 열 머리글 구분 기호를 두 번 클릭하여 행과 열의 자동 크기 조정을 지원합니다. 사용자가 특정 열의 크기를 조정하지 못하도록 하려면 개별 열에 대해 DataGridColumn.CanUserResize 속성을 false
로 설정합니다. 사용자가 모든 열의 크기를 조정하지 못하도록 하려면 DataGrid.CanUserResizeColumns 속성을 false
로 설정합니다. 사용자가 모든 행의 크기를 조정하지 못하도록 하려면 DataGrid.CanUserResizeRows 속성을 false
로 설정합니다.
참고 항목
.NET Desktop feedback