2012-06-18 3 views
9

У меня есть приложение для редактирования изображений, и у меня есть пользовательские аддоны, которые добавляются в AdornerLayer. Когда пользователь нажимает на Adorner, я хочу довести его до вершины - это означает, что если его перетащит через другого adorner, я хочу, чтобы первый щелчок поймал самый верхний adorner.Как изменить z-порядок детей Wpf AdornerLayer?

Я не могу понять, как изменить z-порядок дочерних элементов AdornerLayer. Кажется, это не позволяет мне сортировать их. Даже если я удалю и снова добавлю Adorner, он не получит максимум.

+0

делают другие (не самая верхний) графические элементы нужно поймать событие тоже? –

+0

Нет. Я хочу, чтобы самый последний щелкнул adorner, чтобы стать самым верхним и захватить все клики на его видимые части. – Sugrue

ответ

5

У меня была аналогичная проблема, но просто необходимо определенное упорядочение моих графических элементов. Я в конечном итоге с помощью отражения для установки заказов:

var setZOrderMethodInfo = adornerLayer.GetType().GetMethod("SetAdornerZOrder", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);  
setZOrderMethodInfo.Invoke(adornerLayer, new object[] { adorner1, 0 });  
setZOrderMethodInfo.Invoke(adornerLayer, new object[] { adorner2, 1 }); 

из http://social.msdn.microsoft.com/Forums/en/wpf/thread/40bff84e-c4b5-4ea0-87ea-43461df9f24b

 Смежные вопросы

  • Нет связанных вопросов^_^