WPF アプリケーションのさまざまな例を見てきましたが、Grid
1 列または 1 行しかない最も単純なものでさえ、ほとんどすべてのコントロールの使用を見てきました。
また、WPF テンプレートは空のグリッドから始まります。
私にとって、StackPanel
orを使用するDockPanel
と冗長性が低くなり、メンテナンスに適しています(後で行を追加し、他のすべての行に +1 を追加する必要があると考えてください)
なぜGrid
良いのか、何が欠けているのか?
WPF アプリケーションのさまざまな例を見てきましたが、Grid
1 列または 1 行しかない最も単純なものでさえ、ほとんどすべてのコントロールの使用を見てきました。
また、WPF テンプレートは空のグリッドから始まります。
私にとって、StackPanel
orを使用するDockPanel
と冗長性が低くなり、メンテナンスに適しています(後で行を追加し、他のすべての行に +1 を追加する必要があると考えてください)
なぜGrid
良いのか、何が欠けているのか?
2 つの言葉: 星のサイズ。を使用Grid
すると、コンテナーのサイズを明示的に指定しなくても、コンテンツを含むスペースに合わせてコンテンツのサイズを変更できます。パネル コントロールにはありません。
Grid がデフォルトの要素である理由の 1 つは、(少し) デザイナーにとってより使いやすいからだと思います。
グリッドでは、単一のグリッド「セル」内に複数の要素を持つことに制限はありません。これにより、自由に配置できるデザイナーは、キャンバスと同じ柔軟性を持ちながら、グリッド (およびその他の優れた機能) の自動レイアウト機能を引き続き使用できます。 StackPanel や DockPanel などのレイアウト コントロール) が含まれています。
何も欠けていません。私のアプリケーションには非常に多くのグリッドがありますが、必ずしもトップレベルの要素ではなく、あなたが説明した範囲ではありません。
多くの人は、最初のグリッドを削除できることに気付いておらず、代わりに独自のコントロールをグリッドに配置しています。
より精巧なウィンドウの場合、他のウィンドウから (動きとサイズに関して) かなり独立している機能領域に分割する方が簡単であることがわかりました。グリッドを使用すると、これらの領域を 1 つのパネルに共存させることができ、他のコントロールの場所に (ある程度) 関係なく配置できます。
たとえば、私が現在取り組んでいるプロジェクトでは、出荷マネージャーになるウィンドウがあります。3 つのリスト ビュー (Shipments、Packages、Items) が必要です。2 つの列を持つグリッド コントロールがあります。1 つは Packages リストとグリッド スプリッターを備え、もう 1 つはネストされたグリッドと他の 2 つのリストとグリッド スプリッターを備えています。
多くのデザイナーがウィンドウをこのような領域に分割しているのを見てきましたが、アイテムが間接的に存在する目立たない「セル」がないため、グリッド以外でそれを行うとうまくいきません。かなりの数のプログラムウィンドウがこのデザインを採用していますそれで、彼らが会議を開き、デフォルトのコンテナー パネルを何にするべきかを尋ねたとき、その事実に基づいてグリッドが選択されたと思います。
コーリー