WPF中的BringToFront
|
我需要先介绍WPF中的自定义控件。
伪代码
OnMouseDown()
{
if (this.parent != null)
this.parent.BringToFront(this);
}
我知道,我知道有一个ZIndex,但仍然不知道如何将简单的WinFormBringToFront
替换为parent.SetZIndex(this, ?MaxZIndex(parent)? + 1)
?
也许在诸如WPF之类的很酷的东西中有更好的方法呢?
没有找到相关结果
已邀请:
5 个回复
降女陷费券
剿畦缄饥小
在此示例中,蓝色矩形将显示在顶部。本博客文章对此进行了更多解释。 还有一个问题是Panel.ZIndex的更改没有立即反映在UI中。有一个私有方法可以刷新z-index,但是由于它是私有的,因此使用它不是一个好主意。要解决此问题,您必须删除并重新添加子级。 但是,您不能将任何给定的元素放在最上面。例如:
在这种情况下,将显示黄色矩形。因为第二个内部网格显示在第一个内部网格及其所有内容的顶部。您必须像这样更改它,才能将蓝色矩形置于顶部:
在处理ItemsControl时,这个问题是相关的。大多数其他控件只有一个孩子,但是您仍然需要将它们提高到最高以使其中任何一个孩子居于首位。 最后,装饰者是将事物置于一切之上的好方法,但它们并不是主要视觉树的一部分。因此,我不确定这是否适合您的情况。
纫合峭
茂坦湿床够
这仅是示例,不是通用方法。但是您可以在动态添加控件的应用程序中使用它。这段代码只是将要放在UIElementCollection的和上的元素添加。如果您所有的元素都具有相同的ZIndex,则它可以工作。
笛驮型迸
第一行将其移到最前面,第二行使它永远不会在前面。