2

私にはCanvas複数の子供がいて、それぞれの子供には がMouseDragElementBehavior付属しています。このようなもの:

MouseDragElementBehavior drag = new MouseDragElementBehavior();
drag.Attach(ellipse);

子をドラッグして、ドラッグ後にその子の新しい位置を取得したいので、次のようにしました:

double left = Canvas.GetLeft(ellipse);
double top  = Canvas.GetTop(ellipse);

問題は、要素がドラッグされなかったかのように、ドラッグ後に常に上と左の値が同じになることです。要素の新しい位置を取得するにはどうすればよいですか?

4

1 に答える 1

0

この動作が実際にどのように機能するかについての有用なドキュメントは見つかりませんが、Canvas.Left / .Topではなく、Marginを設定することでコントロールを「移動」すると思います。マージンをチェックして、マージンが変化しているかどうかを確認しましたか?マージンの設定は、Canvas以外のコンテナー(GridやStackPanelなど)への互換性を拡張するため、はるかに便利です。

于 2012-07-04T04:13:32.053 に答える