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 или после того, как кто-то решит до меня! Спасибо!