2

Adornerは、Imageの一部に対して定義されます。必要な動作は次のとおりです。

  1. Adorner 領域を含む画像領域上にマウスを置くと、Adorner が表示されます。
  2. マウスが画像と Adorner 領域から離れると、Adorner は消えます。
  3. それに応じて、装飾の出現と消滅は、フェードイン/アウトアニメーションを介して行われます。
  4. Adorner 領域をクリックすると、イベント AdornerClicked が発生する必要があります。
  5. 装飾によって隠されていない Image 上の領域をクリックすると、ImageClicked が発生する必要があります。

素朴な実装

Image の MouseEnter および MouseLeave イベントの Adorner opacity にアニメーションをアタッチし、それぞれに Click イベントをアタッチします。ただし、これにより、マウスがその真上にあるときに (下の画像で MouseLeave がトリガーされるため) Adorner が消え、要件 1 に違反します。

単純な実装に対する可能な修正は、Adorner で IsHitTestVisible=false を設定することです。ただし、クリックは Adorner によってキャプチャされず、要件 4 に違反しています。

要件を満たす正しいパターンは何ですか?

4

1 に答える 1