11

我有一个图像编辑应用程序,并且我有添加到 AdornerLayer 的自定义装饰器。当用户点击一个装饰器时,我想把它带到顶部——这意味着如果它被拖到另一个装饰器上,我希望第一次点击被最上面的装饰器捕获。

我不知道如何更改 AdornerLayer 的子元素的 z 顺序。它似乎不允许我对它们进行排序。即使我删除并重新添加装饰器,它也不会成为最上面的。

4

2 回答 2

8

我有一个类似的问题,但只需要我的装饰品的特定顺序。我最终使用反射来设置订单:

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

于 2012-09-22T11:31:37.157 回答
2

请看一下,

http://social.msdn.microsoft.com/forums/en-us/wpf/thread/C6780661-EF6D-4141-B4CA-0C7A2461D314

于 2012-06-28T16:41:25.080 回答