Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Várias opções estão disponíveis para controlar como o DataGrid ajusta seu tamanho. Linha e colunas individuais no DataGrid e no DataGrid podem ser dimensionadas automaticamente para se ajustarem ao conteúdo ou definidas a valores específicos. Por padrão, o DataGrid crescerá e diminuirá para ajustar-se ao tamanho de seu conteúdo.
Dimensionando o DataGrid
Cuidado ao usar o dimensionamento automático
Por padrão, as propriedades Height e Width do DataGrid são definidas como Double.NaN ("Auto" em XAML), e o DataGrid será ajustado para o tamanho do seu conteúdo.
Quando colocado dentro de um contêiner que não restringe o tamanho de seus filhos, como um Canvas ou StackPanel, o DataGrid vai se estender além dos limites visíveis do contêiner e as barras de rolagem não serão mostradas. Essa condição tem implicações de usabilidade e desempenho.
Quando vinculado a um conjunto de dados, se o Height do DataGrid não estiver restrito, ele continuará a adicionar uma linha para cada item de dados no conjunto de dados vinculado. Isso pode fazer com que DataGrid cresça fora dos limites visíveis do aplicativo à medida que as linhas são adicionadas. O DataGrid não mostrará barras de rolagem nesse caso porque o Height continuará a crescer para acomodar as novas linhas.
Um objeto é criado para cada linha no DataGrid. Se você estiver trabalhando com um conjunto de dados grande e permitir que ele DataGrid se dimensione automaticamente, a criação de um grande número de objetos poderá afetar o desempenho do aplicativo.
Para evitar esses problemas ao trabalhar com grandes conjuntos de dados, é recomendável que você defina especificamente o Height do DataGrid ou coloque-o em um contêiner que restrinja seu Height, como um Grid. Quando o Height for restrito, o DataGrid criará apenas as linhas que se ajustarão ao seu especificado Height, e reciclará essas linhas conforme necessário para exibir novos dados.
Definindo o tamanho do DataGrid
O DataGrid pode ser definido para dimensionar automaticamente dentro dos limites especificados ou DataGrid pode ser definido como um tamanho específico. A tabela a seguir mostra as propriedades que podem ser definidas para controlar o DataGrid tamanho.
| Propriedade | Descrição |
|---|---|
| Height | Define uma altura específica para o DataGrid. |
| MaxHeight | Define o limite superior para a altura do DataGrid. O DataGrid crescerá verticalmente até atingir esta altura. |
| MinHeight | Define o limite inferior para a altura do DataGrid. Ele DataGrid reduzirá verticalmente até atingir essa altura. |
| Width | Define uma largura específica para o DataGrid. |
| MaxWidth | Define o limite superior para a largura do DataGrid. Ele DataGrid crescerá horizontalmente até atingir essa largura. |
| MinWidth | Define o limite inferior para a largura do DataGrid. O DataGrid reduzirá horizontalmente até atingir essa largura. |
Dimensionamento de linhas e cabeçalhos de linha
Linhas do DataGrid
Por padrão, a propriedade DataGrid de uma linha Height é definida como Double.NaN ("Auto" em XAML), e a altura da linha será expandida para o tamanho do seu conteúdo. A altura de todas as linhas no DataGrid pode ser especificada definindo a DataGrid.RowHeight propriedade. Os usuários podem alterar a altura da linha arrastando os divisores de cabeçalho de linha.
Cabeçalhos de linha do DataGrid
Para exibir cabeçalhos de linha, a propriedade HeadersVisibility deve ser definida como DataGridHeadersVisibility.Row ou DataGridHeadersVisibility.All. Por padrão, os cabeçalhos de linha são exibidos e são dimensionados automaticamente para se ajustarem ao conteúdo. Os cabeçalhos de linha podem receber uma largura específica definindo a DataGrid.RowHeaderWidth propriedade.
Dimensionamento de colunas e cabeçalhos de coluna
Colunas do DataGrid
O DataGrid usa valores da estrutura DataGridLength e da estrutura DataGridLengthUnitType para especificar modos de dimensionamento absolutos ou automáticos.
A tabela a seguir mostra os valores fornecidos pela DataGridLengthUnitType estrutura.
| Nome | Descrição |
|---|---|
| Auto | O modo de dimensionamento automático padrão dimensiona colunas DataGrid com base no conteúdo de células e cabeçalhos de coluna. |
| SizeToCells | O modo de dimensionamento automático baseado em célula dimensiona colunas DataGrid com base no conteúdo das células na coluna, não incluindo cabeçalhos de coluna. |
| SizeToHeader | O modo de dimensionamento automático baseado em cabeçalho dimensiona colunas DataGrid com base apenas no conteúdo dos cabeçalhos de coluna. |
| Pixel | O modo de dimensionamento baseado em pixel dimensiona colunas DataGrid com base no valor numérico fornecido. |
| Star | O modo de dimensionamento de estrela é usado para distribuir o espaço disponível por proporções ponderadas. No XAML, os valores de estrela são expressos como n* em que n representa um valor numérico. 1* é equivalente a *. Por exemplo, se duas colunas em um DataGrid tivesse larguras de * e 2*, a primeira coluna receberia uma parte do espaço disponível e a segunda coluna receberia duas partes do espaço disponível. |
Uma classe DataGridLengthConverter pode ser usada para converter dados entre valores numéricos ou de cadeia de caracteres e valores DataGridLength.
Por padrão, a propriedade DataGrid.ColumnWidth é definida como SizeToHeader, e a propriedade DataGridColumn.Width é definida como Auto. Quando o modo de dimensionamento for definido como Auto ou SizeToCells, as colunas se expandirão até a largura do conteúdo visível mais largo. Ao rolar, esses modos de dimensionamento farão com que as colunas se expandam se o conteúdo maior que o tamanho da coluna atual for rolado para a exibição. A coluna não será reduzida depois que o conteúdo for rolado para fora da exibição.
As colunas no DataGrid também podem ser definidas para dimensionar automaticamente somente dentro dos limites especificados ou as colunas podem ser definidas como um tamanho específico. A tabela a seguir mostra as propriedades que podem ser definidas para controlar os tamanhos das colunas.
| Propriedade | Descrição |
|---|---|
| DataGrid.MaxColumnWidth | Define o limite superior para todas as colunas no DataGrid. |
| DataGridColumn.MaxWidth | Define o limite superior para uma coluna individual. Substitui DataGrid.MaxColumnWidth. |
| DataGrid.MinColumnWidth | Define o limite inferior para todas as colunas no DataGrid. |
| DataGridColumn.MinWidth | Define o limite inferior para uma coluna individual. Substitui DataGrid.MinColumnWidth. |
| DataGrid.ColumnWidth | Define uma largura específica para todas as colunas no DataGrid. |
| DataGridColumn.Width | Define uma largura específica para uma coluna individual. Substitui DataGrid.ColumnWidth. |
Cabeçalhos de Coluna do DataGrid
Por padrão, os cabeçalhos de coluna DataGrid são exibidos. Para ocultar cabeçalhos de coluna, a propriedade HeadersVisibility deve ser definida como DataGridHeadersVisibility.Row ou DataGridHeadersVisibility.None. Por padrão, quando os cabeçalhos de coluna são exibidos, eles são dimensionados automaticamente para se ajustarem ao conteúdo. Os cabeçalhos de coluna podem receber uma altura específica definindo a DataGrid.ColumnHeaderHeight propriedade.
Redimensionando com o mouse
Os usuários podem redimensionar DataGrid linhas e colunas arrastando os divisores de cabeçalho de linha ou coluna. O DataGrid também dá suporte ao redimensionamento automático de linhas e colunas clicando duas vezes no divisor de linhas ou colunas. Para impedir que um usuário redimensione colunas específicas, defina a DataGridColumn.CanUserResize propriedade false para as colunas individuais. Para impedir que os usuários redimensionem todas as colunas, defina a DataGrid.CanUserResizeColumns propriedade como false. Para impedir que os usuários redimensionem todas as linhas, defina a DataGrid.CanUserResizeRows propriedade como false.
Consulte também
.NET Desktop feedback