ContentControl Упорядочить / измерить дочерние панели - PullRequest
1 голос
/ 06 ноября 2011
                            MyControl : ContentControl
                                    |
                              ContentProperty
                            ________|__________
                            |       |         |
                          Grid    Canvas  WrapPanel etc..
                            |_______|_________|
                                    |
                            Drag Moving Childs

Таким образом, становится проще изменить тип панели, управляя логикой как Zoom, Pan, Drag Children, реализованной в Parent ContentControl.

Arrange /Проблемы измерения переопределения, позиционирование мыши при перетаскивании стало адом.Кажется, что все позиции смещены:

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 ]

1 голос
/ 11 ноября 2011

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

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

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

0 голосов
/ 08 ноября 2011

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

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

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

...