1
                            MyControl : ContentControl
                                    |
                              ContentProperty
                            ________|__________
                            |       |         |
                          Grid    Canvas  WrapPanel etc..
                            |_______|_________|
                                    |
                            Drag Moving Childs

そのため、親 ContentControl に実装されているズーム、パン、子のドラッグとしてロジックを管理し、パネルのタイプを簡単に変更できます。

アレンジ・メジャーオーバーライドの問題、ドラッグ時のマウスの位置合わせが地獄になってしまいました。すべての位置がオフセットされているようです:

e.GetPosition(this.Content as Panel).X

Dragged Children を左側に大きなオフセットで移動させます。

Translate(Point,UIElement)

呼び出しのどの組み合わせでも効果がないようです:

this.Content.Translate(Point,Children);

また

Child.Content.Translate(Point,this.Content);

どちらも試していません:

Offset(x,y)

TranslateTransform または HitTest の前後。

同様のシナリオの良い例: http://www.codeproject.com/KB/WPF/zoomandpancontrol.aspx

HitTesting/DragMove でドラッグ オフセットを修正するにはどうすればよいですか? UnTranslable オフセットなしで TranslateTransform を機能させるために、Arrange/Measure Override で正確に何を修正できますか? ありがとう

4

2 に答える 2

1

最後に、プロジェクトを続行する時間があります。最後に、ぐるぐる回って、WPF座標系に対するいくつかの興味深くて本当に役立つ応答を見つけました。

http://www.xtremevbtalk.com/showthread.php?t=322142

それだけです。自分で返信しました。それについての記事を公開する時間があれば、私は幸せになります。興味を持ってくれたすべての人に感謝します。誰かが返信したい場合は、私は幸せになります。

于 2011-11-10T21:58:43.920 に答える
0

最後に、出発点を見つけました:

http://forums.silverlight.net/t/20520.aspx

Content(Panel) のレイアウトは、明らかにそのコンテナーの影響を受けていると思います。 ContentControl:子をどのように配置しますか?これまでのところ、コンテンツ コントロール内の PANEL が元の (ネストされていない) 動作のように子を配置/測定しないことを確認できます。「Canvas Arrange and Canvas Measure」を使用してキャンバスを作成するには、ContentControl で正確に何を変更する必要がありますか?その ContentPresenter を変更する必要がありますか?はいの場合、どのように変更しますか? より深いグーグル検索の後、または誰かが私の前に解決した後のニュース! ありがとう!

于 2011-11-08T15:01:22.540 に答える