Бөлісу құралы:


Пустые столбцыDefinitions и RowDefinitions запрещены

Начиная с .NET 10 приложения WPF не создаются, если <Grid.ColumnDefinitions> или объявлены, <Grid.RowDefinitions> но остаются пустыми в XAML. Это приводит к ошибке MC3063, указывающей, что свойство не имеет значения.

Представленная версия

.NET 10

Предыдущее поведение

Ранее приложения WPF с пустыми <Grid.ColumnDefinitions> или <Grid.RowDefinitions> скомпилированы успешно, даже если определения макета были неполными. Макет по умолчанию имеет одну строку и столбец, помещая все дочерние элементы в одну ячейку, если иное не указано.

Пример, который ранее компилировался:

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

Новое поведение

Начиная с .NET 10, тот же код теперь не компилируется со следующей ошибкой:

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

Это происходит, когда <Grid.ColumnDefinitions> или элементы объявляются, <Grid.RowDefinitions> но не содержат дочерних <ColumnDefinition /> элементов или <RowDefinition /> элементов.

Тип разрушающего изменения

Это изменение может повлиять на совместимость источников.

Причина изменения

Это изменение является прямым следствием реализации поддержки синтаксиса Shorthand в Grid XAML.

Убедитесь, что все <Grid.ColumnDefinitions> и <Grid.RowDefinitions> содержат по крайней мере один допустимый элемент или элемент.

Исправленный пример:

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

Затронутые API

Нет.