Adornerは、Imageの一部に対して定義されます。必要な動作は次のとおりです。
- Adorner 領域を含む画像領域上にマウスを置くと、Adorner が表示されます。
- マウスが画像と Adorner 領域から離れると、Adorner は消えます。
- それに応じて、装飾の出現と消滅は、フェードイン/アウトアニメーションを介して行われます。
- Adorner 領域をクリックすると、イベント AdornerClicked が発生する必要があります。
- 装飾によって隠されていない Image 上の領域をクリックすると、ImageClicked が発生する必要があります。
素朴な実装
Image の MouseEnter および MouseLeave イベントの Adorner opacity にアニメーションをアタッチし、それぞれに Click イベントをアタッチします。ただし、これにより、マウスがその真上にあるときに (下の画像で MouseLeave がトリガーされるため) Adorner が消え、要件 1 に違反します。
単純な実装に対する可能な修正は、Adorner で IsHitTestVisible=false を設定することです。ただし、クリックは Adorner によってキャプチャされず、要件 4 に違反しています。
要件を満たす正しいパターンは何ですか?