ContentControl安排/测量子面板

时间:2011-11-06 19:08:13

标签: wpf panel draggable contentcontrol arrangeoverride

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

因此,更容易更改Panel的类型,将Logics保存为缩放,平移,拖动子项,在Parent 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吗? 感谢

2 个答案:

答案 0 :(得分:1)

最后我有时间继续我的项目,最后,谷歌搜索,我发现一些有趣的,非常有用的回复WPF坐标系:

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

就是这样。自己回复。 如果我有时间发表一篇关于它的文章,我会很高兴。 感谢所有人的兴趣。 如果有人想回复,我会很高兴。

答案 1 :(得分:0)

最后我找到了一个起点:

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

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