在WPF中将控件置于最顶层

时间:2011-12-06 19:46:02

标签: wpf topmost

我有一个表单,用户可以选择各种表单元素并拖动它们。由于用户可以自定义表单的布局,因此我使用画布,并且所有元素都是其子元素。

当两个元素位于同一区域时,无论哪个元素最后添加为画布的子元素都将绘制在顶部。我希望能够将活动元素(被拖动的元素)设置为最顶层的元素。

我使用SetZOrder方法,将其设置为0,但它什么也没做。在检查了所有调用GetZOrder的元素后,我为每个元素得到一个0,这就是为什么将它设置为0并没有什么区别。

我找到的唯一解决方案就是删除元素并将其添加到画布中。

        _mainCanvas.Children.Remove(_selectedElement);
        _mainCanvas.Children.Add(_selectedElement);

虽然这有效,但我觉得必须有更优先和正确的方法。

1 个答案:

答案 0 :(得分:1)

Z指数确定哪个是最重要的。最高的Z指数获胜。尝试将您想要最顶层的ZIndex设置为高于其他ZIndex的数字。