我有一个图像编辑应用程序,并且我有添加到 AdornerLayer 的自定义装饰器。当用户点击一个装饰器时,我想把它带到顶部——这意味着如果它被拖到另一个装饰器上,我希望第一次点击被最上面的装饰器捕获。
我不知道如何更改 AdornerLayer 的子元素的 z 顺序。它似乎不允许我对它们进行排序。即使我删除并重新添加装饰器,它也不会成为最上面的。
我有一个图像编辑应用程序,并且我有添加到 AdornerLayer 的自定义装饰器。当用户点击一个装饰器时,我想把它带到顶部——这意味着如果它被拖到另一个装饰器上,我希望第一次点击被最上面的装饰器捕获。
我不知道如何更改 AdornerLayer 的子元素的 z 顺序。它似乎不允许我对它们进行排序。即使我删除并重新添加装饰器,它也不会成为最上面的。
我有一个类似的问题,但只需要我的装饰品的特定顺序。我最终使用反射来设置订单:
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