Freigeben über


Leere ColumnDefinitions und RowDefinitions sind unzulässig.

Ab .NET 10 können WPF-Anwendungen nicht erstellt werden, wenn <Grid.ColumnDefinitions> oder <Grid.RowDefinitions> deklariert, aber in XAML leer gelassen werden. Dies führt zu einem Fehler MC3063, der angibt, dass die Eigenschaft keinen Wert aufweist.

Eingeführt in Version

.NET 10

Vorheriges Verhalten

Zuvor wurden WPF-Anwendungen mit leerem <Grid.ColumnDefinitions> oder <Grid.RowDefinitions> erfolgreich kompiliert, obwohl die Layoutdefinitionen unvollständig waren. Das Layout ist standardmäßig auf eine einzelne Zeile und Spalte festgelegt und platziert alle untergeordneten Elemente in dieser einzelnen Zelle, sofern nicht anders angegeben.

Beispiel, das zuvor kompiliert wurde:

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

Neues Verhalten

Ab .NET 10 kann derselbe Code jetzt nicht mit dem folgenden Fehler kompiliert werden:

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

Dies tritt auf, wenn <Grid.ColumnDefinitions> oder <Grid.RowDefinitions> Elemente deklariert werden, aber keine untergeordneten <ColumnDefinition /> Elemente oder <RowDefinition /> Elemente enthalten.

Art der einschneidenden Änderung

Diese Änderung kann sich auf die Quellkompatibilität auswirken.

Grund für Änderung

Diese Änderung ist eine direkte Folge der Implementierung der Unterstützung von Grid XAML Shorthand Syntax.

Stellen Sie sicher, dass alle <Grid.ColumnDefinitions> und <Grid.RowDefinitions> mindestens ein gültiges oder spezifisches Element enthalten.

Korrigiertes Beispiel:

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

Betroffene APIs

Keiner.