1

任意のGrid数(場合によっては数千)の状態(マウスのホバー、選択、ドラッグなど)で塗りつぶされた図形があります。複数のオブジェクトが重なっている場合は、それらをホバー/クリックすると、中心点がマウスの位置に最も近いオブジェクトが選択されます。

パフォーマンスとコード設計の両方を考慮すると、これを解決するための最良の方法は何ですか?

いくつかの質問

  1. コードビハインドでシェイプを作成してグリッドの子に追加する必要がありますか、それともいくつかのオブジェクトのリストに巧妙なXAMLバインディングを設定する必要がありますか(チュートリアルがいいでしょう)?
  2. マウスイベントを処理したい。各シェイプに独自のマウスハンドラーを設定する必要がありますか、それとも最も近いシェイプを探す親グリッド用に1つのマウスハンドラーを設定する必要がありますか?
  3. 図形のスタイルは、ユーザーが編集できる必要があります。それらをコードビハインドのリソースまたはプロパティとして定義する必要がありますか?
4

1 に答える 1

0

いくつかのアイデア:

  1. なぜグリッドを使用するのですか?キャンバスはあなたのニーズによりよく合うように見えます。

  2. ルーティングされたイベントを使用します。コンテナのイベントを処理するだけです(マウスxxxを選択してから、マウスの位置と、アクションを受け取る必要のある形状を確認します)。

  3. エンドユーザーが独自のスタイルを宣言できるパブリックStyleプロパティを使用して、汎用の形状コントロールを定義する必要があります。
于 2012-11-29T09:50:27.190 に答える