web-dev-qa-db-ja.com

グリッドの列/行の幅/高さを動的に設定

コードビハインドから動的に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をサポートしませんか?

19
Welsh King

次のように指定できます。

自動サイズの列の場合:

GridLength.Auto

スターサイズのカラムの場合:

new GridLength(1,GridUnitType.Star)
26
ionden

幅をグリッドの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"/>

それが役に立てば幸い!

6
Jamaxack

これは役立つと思います:

自動列の場合:

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

グリーズ・ショーンバーグ

6
Shounbourgh