そのため、私は WPF を初めて使用し、学習経験として単純なレベル エディターを WPF に実装すると考えました。エディターの目的は 2 つあります。まず、任意の方向のバウンディング ボックスをレベル内の「ソリッド」エリアとして定義できるようにしたいと考えています。次に、画像を配置、サイズ変更、傾斜できるようにしたいと考えています。
Canvas を使用して、向きのあるバウンディング ボックスを描画する機能を実装しました (上の画像を参照)。キャンバスとツールバーはドック パネル内にあります。現在、画像機能の実装を計画しています。私がやろうと思ったのは、画像のレイヤーごとに別の Canvas レイヤー (おそらく多数) を作成することです。そうする理由は、各レイヤーの選択と可視性を簡単に制限できるからです。ただし、複数のキャンバス コントロールを適切にレイヤー化する方法がわかりません。確かに、現在使用している DockPanel コンテナーでは、複数のコントロールを重ねることはできません。キャンバス レイヤーを別のキャンバスに埋め込むことを考えましたが、これを適切に設定する方法がわかりません (ユーザーが必要に応じてレイヤーを追加できるようにするため、設定はコードで動的にする必要があることに注意してください)。
理想的な最終結果は、背景が透明で (背後のレイヤーが見えるように)、簡単に非表示にできる任意の数のレイヤーです。また、一度にユーザー入力を受け取るレイヤーは 1 つだけです。
だから私の質問は、キャンバスを重ねるよりも適切なアプローチですか? キャンバスのレイヤー化が良い方法である場合、誰かがリンク/サンプルコードを提供して、これをセットアップする方法を説明できます。複数のスタックされたコントロールに最適なコンテナーは何ですか (子キャンバスのサイズは親コンテナーと一致する必要があることに注意してください)。
乾杯!