GridLength Estrutura
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma medida para a lógica de controle que dá suporte explicitamente ao dimensionamento de Estrela (* ) e ao dimensionamento automático.
public value class GridLength
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
struct GridLength
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
public struct GridLength
Public Structure GridLength
<object property="doubleValue"/>
- or -
<object property="starSizing"/>
-or-
<object property="Auto"/>
- Herança
-
GridLength
- Atributos
Exemplos
Este exemplo mostra como definir larguras de coluna de grade em XAML, seja como um recurso ou diretamente como um valor de Width
propriedade.
<Grid>
<Grid.Resources>
<GridLength x:Key="gridLength200">200</GridLength>
<GridLength x:Key="gridLength2star">2*</GridLength>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="gridColumn0" Width="{StaticResource gridLength200}"/>
<ColumnDefinition x:Name="gridColumn1" Width="200"/>
<ColumnDefinition x:Name="gridColumn2" Width="Auto"/>
<ColumnDefinition x:Name="gridColumn3" Width="3*"/>
<ColumnDefinition x:Name="gridColumn4" Width="{StaticResource gridLength2star}"/>
<ColumnDefinition x:Name="gridColumn5" Width="*"/>
</Grid.ColumnDefinitions>
<Border Background="Red" Grid.Column="0"/>
<Border Background="Orange" Grid.Column="1"/>
<Border Background="Yellow" Grid.Column="2" Width="100"/>
<Border Background="Green" Grid.Column="3"/>
<Border Background="Blue" Grid.Column="4"/>
<Border Background="Violet" Grid.Column="5"/>
</Grid>
O XAML produz essa saída no designer do Visual Studio:
Veja como definir os mesmos valores no código. Os dois primeiros comprimentos de grade são equivalentes, mas o primeiro usa o construtor simplificado.
gridColumn0.Width = new GridLength(200);
gridColumn1.Width = new GridLength(200, GridUnitType.Pixel);
gridColumn2.Width = new GridLength(0, GridUnitType.Auto);
gridColumn3.Width = new GridLength(3, GridUnitType.Star);
gridColumn4.Width = new GridLength(2, GridUnitType.Star);
gridColumn5.Width = new GridLength(1, GridUnitType.Star);
Comentários
Tipos como ColumnDefinition e RowDefinition usam GridLength
valores para algumas de suas propriedades (ColumnDefinition.Width e RowDefinition.Height). Esses valores de propriedade são usados para dar suporte à distribuição variável de espaço disponível em contêineres de layout, como Grid (e também tipos derivados de Grid
, como VariableSizedWrapGrid).
Um GridLength
pode descrever um dos três modos para dimensionamento:
- Uma largura fixa.
- Uma distribuição ponderada (dimensionamento star).
- Um modo de dimensionamento automático.
GridLength
Os valores normalmente são declarados na sintaxe do atributo XAML. Em XAML, a distribuição ponderada é declarada usando um símbolo "*", precedido por um número que declara o fator de ponderação a ser usado para esse GridLength
. A opção de distribuição ponderada também é conhecida como dimensionamento star.
Os valores de dados mantidos por um GridLength
Value e GridUnitType são somente leitura. Se você quiser alterar o valor de uma propriedade que usa um GridLength
em tempo de execução, precisará criar um novo valor usando um dos construtores e substituir o valor anterior.
Dimensionamento de estrela
O dimensionamento em estrela é uma convenção na qual um GridLength
tem um valor numérico que especifica um fator ponderado versus outros GridLength
valores. Todos GridLength
os valores que usam star dimensionamento dividem o espaço disponível, contabilizando os fatores de ponderação e avaliando após a aplicação de larguras fixas. Se nenhum dos dimensionamentos star tiver fatores de ponderação, a altura ou largura será dividida igualmente entre eles. O fator de ponderação padrão é 1.
Esta tabela fornece alguns exemplos de star resultados de dimensionamento. Para esses exemplos, suponha que a Grade pai tenha uma largura fixa de 600 e que haja três colunas.
Coluna 0 | Coluna 1 | Coluna 2 | Result |
---|---|---|---|
100 | 100 | * | 100,100,400 |
100 | * | * | 100,250,250 |
100 | * | 4* | 100,100,400 |
No código, um dimensionamento de star é equivalente a um GridLength
em que IsStar é true
, GridUnitType é Star e Value é o fator ponderado aplicado.
Fatores de ponderação não inteiros são permitidos; por exemplo, ".5*".
Dimensionamento automático
O dimensionamento automático distribui espaço uniformemente com base no tamanho do conteúdo que está dentro de uma coluna ou linha. A lógica exata para dimensionamento automático é implementada pelo controle ou classe usando os GridLength
valores . Normalmente, essa classe é Grid, pois interpreta seus componentes RowDefinition e ColumnDefinition .
Observações sobre a sintaxe XAML
Embora você possa especificar um como um GridLength
elemento de objeto, não é possível especificar os valores individuais, como Value
, como atributos desse elemento de objeto. O analisador XAML não dá suporte à definição de valores de atributo XAML para essa estrutura. Em vez disso, você deve especificar os valores como texto de inicialização dentro do GridLength
. Para obter mais informações sobre o texto de inicialização XAML, consulte Guia de sintaxe XAML.
Projeção e membros de GridLength
Se você estiver usando C#, GridLength terá membros que não são de dados disponíveis e seus membros de dados serão expostos como propriedades somente leitura, não campos. Consulte GridLength no Navegador de API do .NET.
Se você estiver programando com C++/WinRT ou o Windows Runtime WRL (Biblioteca de Modelos C++), somente os campos de membro de dados existirão como membros de GridLength
e você não poderá usar os métodos ou propriedades do utilitário da projeção do .NET. O código C++ pode acessar métodos utilitários semelhantes que existem na classe GridLengthHelper .
Esta tabela mostra as propriedades e os métodos equivalentes disponíveis no .NET e no C++.
Campos
GridUnitType |
Um valor da enumeração GridUnitType que qualifica como |
Value |
A medida para esse GridLength, que não é necessariamente uma medida de pixel. |
Aplica-se a
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de