2011-11-06 47 views
0
      MyControl : ContentControl 
        | 
           ContentProperty 
          ________|__________ 
          |  |   | 
          Grid Canvas WrapPanel etc.. 
          |_______|_________| 
            | 
          Drag Moving Childs 

所以,让我们很容易改变面板的类型,mantaining逻辑缩放,平移,将儿童,由家长ContentControl中实现。ContentControl中排列/测量子面板

排列/测量覆盖问题,拖动时的鼠标定位已经变成地狱。 似乎所有的位置都抵消:

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

让孩子拖一个巨大的移动左侧偏移。

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偏移量? 感谢

+0

哇,这是很多文字。也许你可以把它分解成几个具体的问题? –

回答

0

终于让我找到一个出发点:

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

我想我的内容的布局(面板)显然是由它的容器的影响: 在这个环节有类似我的答复东西搜索,但它没有解释清楚如何在ContentControl中的子面板被其ParentContentControl严格修改:它将如何安排其子代?直到现在,我可以确保内部控制面板不会安排/测量其子女在原来的(不是嵌套的)行为中。 我应该怎样修改ContentControl中的“Canvas Arrange and Canvas Measure”Canvas?我需要修改它的ContentPresenter吗?如果是,如何? 更深入的谷歌搜索之后或有人会解决我之前的新闻! 谢谢!

0

最后,我有一些时间来继续我的项目,最后,谷歌搜索的时候,我发现了一些有趣的,真正有用的答复WPF坐标系:

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

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