0

ドラッグ動作を実装していますが、次の問題があります。

最初に、CenterX と CenterY が 0 に等しい長方形をスケーリングします。次に、実行時に CenterX と CenterY を長方形の右上隅に変更して、左側にスケーリングします。

問題は、オブジェクトの centerX と centerY を変更すると、CenterX と CenterY を変更したことがないようにすべてが再描画されることです。

Obs: RenderTransform を使用しています。

=x をうまく説明できたかどうかわかりません。

助けてください。ありがとう。

4

1 に答える 1

0

コードがなければ、助けるのは難しいです。でもとにかくやってみます。

「実際の結果」のために変換行列を使用してみることができます。例:

        Point dragDelta = new Point(e.HorizontalChange, e.VerticalChange);

        Matrix toCalculate = ((visualComponent as FrameworkElement).RenderTransform).Value;
        dragDelta = toCalculate.Transform(dragDelta);

        myData.X += dragDelta.X;
        myData.Y += dragDelta.Y;

これを行うには多くの方法があります。翻訳変換を使用するのは特に好きではありません。理想は、親指を使用し、テンプレートを使用してスタイルを設定することです。これはあなたを助けるはずです:http://www.codeproject.com/Articles/148503/Simple-Drag-Selection-in-WPF

于 2012-07-20T02:12:45.160 に答える