0

のContextMenuは(this少しチュートリアル以下)素晴らしい仕事しましたのSilverlight 4のContextMenuおよびSilverlight 4ツールキットが提供するScaleTransform

<UserControl> 
    <Grid> 
     <!-- Rest of app here... --> 
    </Grid> 
</UserControl> 

は今、私のアプリは、次のようになります。すべてが素晴らしい仕事

は、チュートリアルの前に、私のXAMLはのように見えました

スケーリングは完全に機能しますが、右クリックするとコンテキストメニューが表示されません(マウスの下)。代わりに、マウスと同じx位置に表示されますが、アプリの一番上に表示されます。それはまた非常にバグだ、私はそれを取り除くために周りをクリックし続ける必要があり、私はもう一度それを持ち出すためにどこか他の場所を右クリックすることはできません。

これは何が原因でしょうか?これを修正する正しい方法がありますか、それともメニューにオフセットを適用してマウスに移動するだけですか?

答えて

1

スクリーンポイントをアプリケーションが理解できるポイントに変換するには、カーソル座標をスケール変換の逆数に渡す必要があります。

+0

私は理解できません。このようなもの? http://pastebin.com/EisCLd5B – Jesse

+0

@Jesse - 私はあなたのコードをまだチェックしていませんが、スケール変換が 'x * 2'と' y * 3'であれば、マウス座標をスケーリングする必要があるでしょう'x/2'と' y/3'で指定します。 – ChrisF

関連する問題