2011-11-06 53 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。 如果我有時間發表一篇關於它的文章,我會很開心。 感謝所有感興趣的人。 如果有人想回復,我會很高興。