グリッドの行と列の定義は次のようにハードコーディングされているようです。
Grid.Row="3" Grid.Column="1"
私は新しいWPFアプリの開発の途中であり、クライアントがフォームの外観を決定するときに、グリッドから新しい行を絶えず追加および削除する必要があります。これは非常に面倒な作業であることがわかりました。上部近くに行を挿入する場合は、挿入した行の下にあるXAMLのすべての行インデックスを手動で変更する必要があります。
すべての行を自動調整する簡単な方法はありますか?
Grid
はグリッドであり、行と列には特定の理由で番号が付けられています。これは、一定数の正方形にスライスされた方眼紙のようなものです。行と列の数が固定されているため、行と列のスパンなどの強力な処理を実行できます。逆に、これは可変数の行または列に対して柔軟性がありません。
可変数の行が必要な場合、または設計時に行を継続的に追加している場合は、Grid
が最適な設計要素ではない可能性があります。さらに良いことに、Grid
を別のレイアウト要素と組み合わせて使用して、必要な柔軟性を得ることができます。
たとえば、すべての可変行を1つのGrid
行に入れることができ、グリッド行数はこれ以上変更されません。ただし、そのGrid
行に配置するには、可変数の行をサポートするレイアウト要素が必要になります。選択できるものはたくさんありますが、たとえば、便利なのはStackPanel
とDockPanel
の2つです。
特にレイアウト要素DockPanel
は、特にDockPanels
または他の組み合わせ内でDockPanels
として使用される場合、可変数の行または列に対して非常に強力です。このレイアウトの問題を処理するために必要なのは、細分化して征服するだけです!
DockPanel
の概要は次のとおりです。 WPFチュートリアル:ドックパネル
これは非常に古い質問ですが、他の誰かがそれに遭遇した場合に備えて、Visual Studio 2013では(おそらく以前にもわかりません)、グリッドのエッジにカーソルを合わせると、行を分割できます2行。
これにより、行が設定された数の高さになります。そのため、おそらく戻って「自動」または「*」または使用したいものに変更する必要があります。また、元の行のすべてが両方の行にまたがるようになるため、これらのアイテムのRowSpan = "2"属性を削除して正しい行に配置する必要がありますが、下の行のすべてのアイテムが自動的に押し下げられます。
これは完全に自動化されているわけではなく、少しクリーンアップされますが、行が多い場合は、すべてを手動で番号を付け直すよりも高速です。