このグループのサンプルでは、GrapeCity.Documents.Layout.Composition 名前空間のクラスを使用して、 独自の Z オーダーやクリッピングを持つ複雑で柔軟な制約ベースのレイアウトを作成する方法を紹介しています。 以下のレイアウト関連のクラスは、上記の構図関連のクラスと連携して動作します。 レイアウトを作成するための主な手順は以下のとおりです。
  1. レイアウトを含む Surface を作成します。
  2. Surface を使用して 1 つ以上の View を作成します。 各 View はサイズと変換行列を持っています。
  3. View に Visual や Space を追加します。
    • View を使用して、1 つ以上の Visual を作成します。 Visual には通常、関連する LayoutRect があります。 なお、制約によって、矩形のサイズと位置が明確に決定される必要があり、そうでない場合はエラーが発生します。 また、Visual に LayoutRect がない場合、View の座標系のアンカーポイントに描画するために使用されます。
    • また、制約で定義された空白を View に追加する必要がある場合、View を使用して Space オブジェクトを追加します。 Space は、基本的に Draw メソッドを持たない Visual です。 なお、Space はコンテナではなく、空白を追加することだけが目的であることに注意してください。
  4. 各 Visual と Space の LayoutRect の制約を指定します。 制約は、同じ View 内の別の Visual に対する相対的なもの、または View 自体に対する相対的なものです。 唯一の例外は、別の View の AnchorPoint に対する相対的な制約、または別の View の Contour に対する相対的な制約を指定することができることです。
GrapeCity.Documents.Layout.Composition のサンプルは以下のとおりです。