Partilhar via


Não são permitidas definições vazias de colunas (ColumnDefinitions) e linhas (RowDefinitions)

A partir do .NET 10, os aplicativos WPF falham ao compilar se <Grid.ColumnDefinitions> ou <Grid.RowDefinitions> são declarados, mas deixados vazios em XAML. Isso resulta em erro MC3063, que indica que a propriedade não tem um valor.

Versão introduzida

.NET 10

Comportamento anterior

Anteriormente, os aplicativos WPF com <Grid.ColumnDefinitions> ou <Grid.RowDefinitions> vazios compilavam com sucesso, mesmo que as definições de layout estivessem incompletas. O layout tinha como padrão uma única linha e coluna, colocando todos os elementos filho nessa única célula, a menos que especificado de outra forma.

Exemplo que compilou anteriormente:

<Grid>
  <Grid.ColumnDefinitions>
  </Grid.ColumnDefinitions>
</Grid>

Novo comportamento

A partir do .NET 10, o mesmo código agora não consegue compilar com o seguinte erro:

error MC3063: Property 'ColumnDefinitions' does not have a value.

Isso ocorre quando os elementos <Grid.ColumnDefinitions> ou <Grid.RowDefinitions> são declarados, mas não contêm elementos filhos <ColumnDefinition /> ou <RowDefinition />.

Tipo de mudança disruptiva

Essa alteração pode afetar a compatibilidade da fonte.

Motivo da mudança

Essa alteração é uma consequência direta da implementação do suporte à sintaxe abreviada Grid XAML.

Certifique-se de que cada <Grid.ColumnDefinitions> e <Grid.RowDefinitions> contenha pelo menos um elemento válido ou elemento.

Exemplo corrigido:

<Grid>
  <Grid.ColumnDefinitions>
    <ColumnDefinition />
  </Grid.ColumnDefinitions>
</Grid>

APIs afetadas

Nenhum.