2012-06-18 41 views
9

Tôi có một ứng dụng chỉnh sửa hình ảnh và tôi có adorners tùy chỉnh được thêm vào AdornerLayer. Khi người dùng nhấp vào một Adorner, tôi muốn đưa nó lên hàng đầu - có nghĩa là nếu nó được kéo trên một adorner khác, tôi muốn nhấp chuột đầu tiên được bắt gặp bởi adorner trên cùng.Làm thế nào để thay đổi thứ tự z của trẻ em Wpf AdornerLayer?

Tôi không thể tìm ra cách thay đổi thứ tự z của các phần tử con của AdornerLayer. Nó dường như không cho phép tôi sắp xếp chúng. Ngay cả khi tôi loại bỏ và thêm lại Adorner, nó cũng không đạt đến đỉnh cao.

+0

làm các việc khác (không phải trên cùng) adorners cần phải nắm bắt sự kiện này quá? –

+0

Không. Tôi muốn quảng cáo được bấm gần đây nhất để trở thành trên cùng và để lấy tất cả các nhấp chuột đến các phần hiển thị của nó. – Sugrue

Trả lời

5

Tôi đã có một vấn đề tương tự, nhưng chỉ cần một người đặt hàng cụ thể của adorners tôi. Tôi đã kết thúc bằng cách sử dụng phản ánh để thiết lập các đơn đặt hàng:

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

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

Các vấn đề liên quan