読者です 読者をやめる 読者になる 読者になる

Grid の列幅や行の高さをコードで Autoやスターにする方法

RowDefinition.Height や ColumnDefinition.Width の値は GridLength 型なので、GridLength を上手いこと設定してやれば OK。

// <RowDefinition Height="Auto"/> と同じ
rowDefinition.Height = GridLength.Auto;

// <RowDefinition Height="*"/> と同じ
rowDefinition2.Height= new GridLength(1.0, GridUnitType.Star);

// <ColumnDefinition Width="2*"/> と同じ
columnDefinition.Width = new GridLength(2.0, GridUnitType.Star);

// <ColumnDefinition Width="0.5*"/> と同じ
columnDefinition2.Width = new GridLength(0.5, GridUnitType.Star);

普段は XAML で済ませることが多いですけど、コントロール作っていたら、コードで設定するしかない場面がありますよね。