私はアプリケーションでドラッグして項目を削除していますが、ドロップするオブジェクトの内容に基づいて動的にグリッドをクリスタル処理しています(一部のオブジェクトでは、 2列のグリッド、4つのグリッドなど)。これは簡単なことですが、これらの列をどのくらい広げたいのかを指定しようとすると、それは機能しておらず、グリッドを互いの上に表示しています。私は列がどのように見えるかを付けます。WPF ColumnDefinitionsのWidthおよびMaxWidthプロパティが機能しません
最初の例は、5つのオブジェクトがドラッグアンドドロップされた結果を示しています。幅の指定は効果がないことが分かります。
第2の例は同じことですが、グリッドが幅の指定に従っていないことを示しています。 「Zip」オブジェクトに「Email」オブジェクトをドロップすると、グリッドがオーバーレイされます。
ここに定義を作成するために使用しているコードです。反復処理する各アイテムについてわかるように、私はラベルを作成しています。
/*Initialize Grid Layout*/
Grid newGrid = new Grid();
newGrid.MinHeight = 40;
/*Define Column Definitions*/
List<ColumnDefinition> columns = new List<ColumnDefinition> (fieldItemList.Count);
foreach (ColumnDefinition column in columns)
{
ColumnDefinition labelColumn = new ColumnDefinition();
/*Specify Width Dimensions*/
labelColumn.Width = new GridLength(150);
labelColumn.MaxWidth = 200.0;
newGrid.ColumnDefinitions.Add(labelColumn);
newGrid.ColumnDefinitions.Add(column);
}
/*Define Row Definitions*/
RowDefinition row = new RowDefinition();
newGrid.RowDefinitions.Add(row);
列定義に割り当てる境界線を尊重する方法を教えてください。
コードがスクリーンショットにどのように適合するかを理解するのは難しいですが、ColumnDefinitionsが伸びていないことは確かですか?グリッドの子どもたちは伸びていない可能性があります。 'newGrid.ShowGridLines = true;でGridのGridLinesを有効にしてみてください –