ContentControl Упорядочить / измерить дочерние панели

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

Таким образом, легче изменить тип Panel, управляя логикой как Zoom,Pan,Drag Children, реализованной в 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? Что именно я могу исправить в Arrange/Measure Override, чтобы иметь работающий TranslateTransform без смещения UnTranslable? Спасибо

2 ответа

Наконец, у меня есть некоторое время, чтобы продолжить мой проект, и, наконец, погуглив, я нашел интересный и действительно полезный ответ на систему координат WPF:

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

Вот и все. Ответил сам. Если у меня будет время опубликовать статью об этом, я буду счастлив. Спасибо всем людям за интерес. Если кто-то захочет ответить, я буду счастлив.

Наконец я нашел отправную точку:

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

Я предполагаю, что на расположение моего Контента (Панели) явно влияет его контейнер: в этой ссылке есть что-то похожее на ответ, который я искал, но он не объясняет четко, как дочерняя панель в ContentControl точно модифицируется его родителем. ContentControl: Как он будет располагать свои дочерние элементы? До сих пор я могу гарантировать, что ПАНЕЛЬ ВНУТРИ элемента управления контентом НЕ будет организовывать / измерять свои дочерние элементы, как в исходном (не вложенном) поведении. Что я должен изменить ТОЧНО в ContentControl, чтобы иметь Canvas с "Canvas Arrange and Canvas Measure"? Нужно ли изменять его ContentPresenter? Если да, то как? Новости после более глубокого поиска в Google или после того, как кто-то решит до меня! Спасибо!

Другие вопросы по тегам