Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Várias opções estão disponíveis para controlar como o DataGrid se dimensiona. O DataGrid, e linhas e colunas individuais no DataGrid, podem ser definidos para dimensionar automaticamente o seu conteúdo ou podem ser definidos para valores específicos. Por padrão, o DataGrid crescerá e encolherá para se ajustar ao tamanho de seu conteúdo.
Dimensionando o DataGrid
Cuidados 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 ao tamanho de seu conteúdo.
Quando colocado dentro de um contenedor que não limita o tamanho dos seus elementos, como um Canvas ou StackPanel, o DataGrid vai estender-se além dos limites visíveis do contenedor e as barras de rolagem não serão exibidas. Esta condição tem implicações de usabilidade e desempenho.
Quando vinculado a um conjunto de dados, se o Height do DataGrid não for restrito, ele continuará a adicionar uma linha para cada item de dados no conjunto de dados acoplado. Isso pode fazer com que o DataGrid cresça fora dos limites visíveis do seu aplicativo à medida que as linhas são adicionadas. O DataGrid não mostrará barras de rolagem neste caso porque seu Height continuará a crescer para acomodar as novas linhas.
Um objeto é criado para cada linha no DataGrid. Se você estiver trabalhando com um grande conjunto de dados e permitir que o DataGrid se dimensione automaticamente, a criação de um grande número de objetos pode afetar o desempenho do seu aplicativo.
Para evitar esses problemas ao trabalhar com grandes conjuntos de dados, é recomendável definir especificamente a Height do DataGrid ou colocá-lo em um contêiner que restringirá sua Height, como um Grid. Quando o Height é restrito, o DataGrid criará apenas as linhas que caberão em seu Heightespecificado 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 o DataGrid pode ser definido para um tamanho específico. A tabela a seguir mostra as propriedades que podem ser definidas para controlar o tamanho do DataGrid.
| 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 essa altura. |
| MinHeight | Define o limite inferior para a altura do DataGrid. O DataGrid encolherá verticalmente até atingir essa altura. |
| Width | Define uma largura específica para o DataGrid. |
| MaxWidth | Define o limite superior para a largura do DataGrid. O DataGrid crescerá horizontalmente até atingir essa largura. |
| MinWidth | Define o limite inferior para a largura do DataGrid. O DataGrid encolherá 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 de seu conteúdo. A altura de todas as linhas no DataGrid pode ser especificada definindo a propriedade DataGrid.RowHeight. 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 propriedade DataGrid.RowHeaderWidth.
Dimensionamento de colunas e cabeçalhos de coluna
Colunas DataGrid
O DataGrid usa valores do DataGridLength e da estrutura DataGridLengthUnitType para especificar modos de dimensionamento absolutos ou automáticos.
A tabela a seguir mostra os valores fornecidos pela estrutura DataGridLengthUnitType.
| Nome | Descrição |
|---|---|
| Auto | O modo de dimensionamento automático padrão dimensiona DataGrid colunas com base no conteúdo tanto das células quanto dos cabeçalhos de coluna. |
| SizeToCells | O modo de dimensionamento automático baseado em célula dimensiona DataGrid colunas 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 DataGrid colunas com base apenas no conteúdo dos cabeçalhos de coluna. |
| Pixel | O modo de dimensionamento baseado em pixels dimensiona DataGrid colunas com base no valor numérico fornecido. |
| Star | O modo de dimensionamento de estrelas é usado para distribuir o espaço disponível por proporções ponderadas. Em XAML, os valores de estrela são expressos como n* onde n representa um valor numérico. 1* é equivalente a *. Por exemplo, se duas colunas em um DataGrid tivessem 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. |
A 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 SizeToHeadere a propriedade DataGridColumn.Width é definida como Auto. Quando o modo de dimensionamento é definido como Auto ou SizeToCells, as colunas crescerão até a largura de seu conteúdo visível mais amplo. Ao rolar, esses modos de dimensionamento farão com que as colunas se expandam se o conteúdo maior que o tamanho atual da coluna for rolado para a exibição. A coluna não diminuirá depois que o conteúdo for deslocado para fora da vista.
As colunas no DataGrid também podem ser definidas para serem dimensionadas automaticamente apenas dentro dos limites especificados ou as colunas podem ser definidas para um tamanho específico. A tabela a seguir mostra as propriedades que podem ser definidas para controlar tamanhos de coluna.
| 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 mínimo 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 da "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 das colunas são exibidos, eles são automaticamente dimensionados para se ajustarem ao conteúdo. Os cabeçalhos de coluna podem receber uma altura específica definindo a propriedade DataGrid.ColumnHeaderHeight.
Redimensionamento 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 suporta o redimensionamento automático de linhas e colunas clicando duas vezes no divisor de cabeçalho de linha ou coluna. Para impedir que um usuário redimensione colunas específicas, defina a propriedade DataGridColumn.CanUserResize como false para as colunas individuais. Para impedir que os usuários redimensionem todas as colunas, defina a propriedade DataGrid.CanUserResizeColumns como false. Para impedir que os usuários redimensionem todas as linhas, defina a propriedade DataGrid.CanUserResizeRows como false.
Ver também
.NET Desktop feedback