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 中的拖动偏移?我到底可以在安排/测量覆盖中修复什么以使 TranslateTransform 没有 UnTranslable 偏移量?谢谢

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

我猜我的内容(面板)的布局显然受其容器的影响:在此链接中有类似于我正在搜索的回复的内容,但它没有清楚地解释 ContentControl 中的子面板如何被其父级精确修改ContentControl:它将如何安排其子项?到目前为止,我可以确保内容控件内的面板不会像其原始(非嵌套)行为那样安排/测量其子项。我应该在 ContentControl 中完全修改什么以获得具有“画布排列和画布测量”的画布?我是否需要修改其 ContentPresenter?如果是,如何?经过更深入的谷歌搜索或有人会在我面前解决之后的新闻!谢谢!

于 2011-11-08T15:01:22.540 回答