У нас есть приложение WPF, на котором есть пользовательские окна на холсте, которые, в свою очередь, содержат настраиваемые элементы управления (основной холст, содержащий пользовательские окна, снова является настраиваемым элементом управления, отображающим материал). Таким образом, в основном визуальное дерево выглядит следующим образом (без неявных границ и других вещей):Drag & Drop-adorner в глубоко вложенных визуальных деревьях
- Windows
- Canvas
- WindowMgr
- CustomWindow (maximized with z-index 0, functioning as background)
- ScrollPresenter
- CustomControl1
- CustomWindow
- ScrollPresenter
- CustomControl2
Теперь нам нужно перетащить & падение из этих пользовательских элементов управления друг с другом (как правило, от подвижного окна в фоновом окно). Чтобы показать перетащить & капля-рекламодатель, необходимо украсить украшенный элемент и слой adorner. Обычно примеры используют для этого свою сетку или элементы управления, а также получают слой adorner из того же элемента.
Выполнение такого же действия здесь не работает, так как ScrollPreseneter/CustomWindows зажимает их содержимое, которое не позволяет вам перетаскивать из окна. Пока мы подходим к визуальному дереву, пока не найдем корневой холст и не используем его как украшенный элемент, но это кажется грязным (и, как мы переживали, не очень надежным).
Любые предложения по надежному решению для этого?