コードビハインドから動的にWPFグリッドを作成する必要があります。これで大丈夫です。コンテンツの幅を設定できるようにできますが、ウィンドウのサイズを変更するとコントロールのサイズが動的に変更されるように設定する必要があります
var col = new ColumnDefinition();
col.Width = new System.Windows.GridLength(200);
grid1.ColumnDefinitions.Add(col);
これはXAMLを生成します
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"></ColumnDefinition>
</Grid.ColumnDefinitions>
しかし、必要なのは*または疑問符を使用することです。
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
しかし、WidthValueは、コードビハインドから作成する場合、*または疑問符aをサポートしませんか?
次のように指定できます。
自動サイズの列の場合:
GridLength.Auto
スターサイズのカラムの場合:
new GridLength(1,GridUnitType.Star)
幅をグリッドのColumnDefinitionsに設定するには、3つのタイプがあります。
パーセント列の場合:
yourGrid.ColumnDefinitions[0].Width = new GridLength(1, GridUnitType.Star);
XAMLで:
<ColumnDefinition Width="1*"/>
ピクセル列の場合
yourGrid.ColumnDefinitions[0].Width = new GridLength(10, GridUnitType.Pixel);
yourGrid.ColumnDefinitions[0].Width = new GridLength(10);
XAMLで:
<ColumnDefinition Width="10"/>
自動列の場合
yourGrid.ColumnDefinitions[0].Width = GridLength.Auto;
XAMLで:
<ColumnDefinition Width="Auto"/>
それが役に立てば幸い!
これは役立つと思います:
自動列の場合:
ColumnDefinition cd = new ColumnDefinition();
cd.Width = GridLength.Auto;
またはプロポーショングリッドの長さ:
ColumnDefinition cd = new ColumnDefinition();
cd.Width = new GridLength(1, GridUnitType.Star);
または以下を見てください http://msdn.Microsoft.com/en-us/library/system.windows.gridlength.aspx および http://msdn.Microsoft.com/en -us/library/system.windows.gridunittype.aspx
グリーズ・ショーンバーグ