次の方法で共有


空の ColumnDefinitions と RowDefinition は許可されていません

.NET 10 以降、<Grid.ColumnDefinitions> または <Grid.RowDefinitions> が XAML で宣言されているが空のままの場合、WPF アプリケーションはビルドに失敗します。 これにより、プロパティに値がないことを示すエラー MC3063が発生します。

導入されたバージョン

.NET 10

以前の動作

以前は、レイアウト定義が不完全であったとしても、空の <Grid.ColumnDefinitions> または <Grid.RowDefinitions> を持つ WPF アプリケーションは正常にコンパイルされていました。 レイアウトは既定で 1 つの行と列に設定され、特に指定しない限り、すべての子要素がその 1 つのセルに配置されます。

以前にコンパイルされた例:

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

新しい動作

.NET 10 以降では、同じコードが次のエラーでコンパイルに失敗するようになりました。

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

これは、 <Grid.ColumnDefinitions> または <Grid.RowDefinitions> 要素が宣言されていても、子 <ColumnDefinition /> または <RowDefinition /> 要素が含てられていない場合に発生します。

破壊的変更の種類

この変更は 、ソースの互換性に影響する可能性があります。

変更の理由

この変更は、Grid XAML 短縮構文のサポートを実装した場合の直接的な結果です。

すべての <Grid.ColumnDefinitions><Grid.RowDefinitions> に少なくとも 1 つの有効な要素が含まれていることを確認します。

修正された例:

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

影響を受ける API

なし。