2012-06-18 11 views
9

Mam aplikację do edycji obrazu i mam niestandardowych adorners, które dodają się do AdornerLayer. Kiedy użytkownik kliknie na Adornera, chcę go przenieść na szczyt - co oznacza, że ​​jeśli zostanie przeciągnięty na innego adoratora, chcę, aby pierwsze kliknięcie zostało przechwycone przez najwybitniejszego adoratora.Jak zmienić kolejność z dziećmi Wpf AdornerLayer?

Nie mogę określić, jak zmienić kolejność elementów potomnych AdornerLayer. Wydaje mi się, że nie pozwala mi to sortować. Nawet jeśli usunę i ponownie dodaję Adornera, nie osiągnie on najwyższego poziomu.

+0

zrobić inne (nie-najwyższa) adorners trzeba złapać za zdarzenie? –

+0

Nie. Chcę, aby ostatnio kliknięty adorator stał się najlepszy i aby przenosić wszystkie kliknięcia do widocznych części. – Sugrue

Odpowiedz

5

miałem podobny problem, ale po prostu potrzebny konkretny uporządkowanie moich adorners. Skończyło się przy użyciu odbicia ustawić zlecenia:

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 }); 

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

Powiązane problemy