我有一个表单,用户可以在其中选择各种表单元素并拖动它们。由于用户可以自定义表单的布局,因此我使用的是画布,并且所有元素都是它的子元素。
当两个元素在同一区域中时,无论最后添加哪个作为画布的子元素,都将在顶部绘制。我希望能够将任何活动元素(被拖动的元素)设置为最顶部的元素。
我使用了 SetZOrder 方法,将其设置为 0,但它什么也没做。在检查我调用 GetZOrder 的所有元素后,我得到的每个元素都为 0,这就是为什么将其设置为 0 并没有什么区别。
我找到并且确实有效的唯一解决方案是删除元素并将其添加到画布。
_mainCanvas.Children.Remove(_selectedElement);
_mainCanvas.Children.Add(_selectedElement);
虽然这行得通,但我觉得必须有一种更喜欢和更正确的方法来做到这一点。