2016-07-21 2 views
0

私はマウスダウンイベントでハンドラをフックしてアドオン上でクリックマウスの位置を取得しようとしています。 adornerは、四角形の右下隅に10unitの半径を持つ単なる円です。私はxとyの両方の範囲[0-10]の座標を得ることを期待していますが、+100を得ています。 adornerのハンドラで、私はe.GetPosition(this)を呼び出しています。UIElementを基準としたクリックマウスの位置の取得

答えて

0

マウスポインターの位置は、エレメントの左上隅を原点とし、エレメントの「中央」ではなく、目的のエレメントを基準として計算されます。 GetPostion()から取得した結果を使用して位置を計算する必要があります。 here例を参照

+0

私は完全に同意しますが、半径10単位の円では、円の内側をクリックすると座標の値の範囲が[0-20]になります。 –

+0

奇妙な結果が出た場合は、GetPositionを呼び出すときにadorner内にいることを確認してください。そうでないと、0または他のadornerとの距離が返されます。 –

+0

で定義されたマウスダウンイベントハンドラから位置を取得しています。崇拝者それは自己e.GetPosition(this) –

関連する問題