1

私が見た限りでは、以前にここで尋ねられたような問題に直面しています。これらのほとんどを読みましたが、正しい答えが見つかりませんでした。

これは私が必要なものです:

  • 複雑な形状のゾーン (例: 国、州など)
  • その上でイベントを取得する可能性がある(特にマウスの)
  • その中にいくつかのコントロールを配置する可能性 (例: 画像、ボタン)

一部のユーザーコントロール、コントロールテンプレートを使用しているのを見ました..しかし、そのような形状にはどうすればよいですか? ほとんどの質問は、標準的な形状の基本的な組み合わせに関するものでした。
(ブレンドで、ペンでパス オブジェクトを作成できることがわかりました。これを使用してゾーンの形状を定義する方法はありますか?)

ありがとう。

4

2 に答える 2

0

独自のコントロールを作成し、そのメイン コンテナーを Canvas にします。キャンバスの背景を透明にしてから、必要なすべてのコントロールを配置できます。Canvas 内のメイン シェイプとして Polygon を使用し、必要なすべてのコントロールを Canvas に配置できます (ただし、目的のために、ポリゴンで覆われた領域の外にそれらを配置しないようにすることをお勧めします。

使用する各オブジェクトに mousedown イベントを処理させてから、それらを個別にドラッグできます。マウスダウンが発生したら、クリックしたオブジェクトで CaptureMouse() メソッドを使用して、すべてのドラッグ (メイン ウィンドウのオンまたはオフ) がクリックしたオブジェクトによって引き続きキャプチャされるようにします。mouseup イベントで ReleaseMouse() を呼び出すようにしてください。

コントロールのインスタンスは必要な数だけ作成できます。それぞれが含むポリゴンによって定義された異なる形状を持つすべて。これらすべてのオブジェクトを 1 つのグリッドまたはキャンバスに配置すれば、準備完了です。

于 2012-04-27T18:09:02.343 に答える