您必须使用Z索引属性,并且因为没有内置函数可以执行您想要的操作,所以我做了自己的事情。Z值越高,控件越靠近“ Z”。因此,您希望将控件放在顶部而不必设置任意高Z值。
因此,这是我为自己编写的一个小功能,正是为了实现这一功能。注意:这假定您使用的是Canvas和UserControls。因此,如果不是您的情况,则可能需要稍作调整。
基本上,它将获得要移动的控件的索引,然后当前位于其上方的任何控件将下降1,然后将要移动的控件放在顶部(以保持层次结构)。
static public void BringToFront(Canvas pParent, UserControl pToMove)
{
try
{
int currentIndex = Canvas.GetZIndex(pToMove);
int zIndex = 0;
int maxZ = 0;
UserControl child;
for (int i = 0; i < pParent.Children.Count; i++)
{
if (pParent.Children[i] is UserControl &&
pParent.Children[i] != pToMove)
{
child = pParent.Children[i] as UserControl;
zIndex = Canvas.GetZIndex(child);
maxZ = Math.Max(maxZ, zIndex);
if (zIndex > currentIndex)
{
Canvas.SetZIndex(child, zIndex - 1);
}
}
}
Canvas.SetZIndex(pToMove, maxZ);
}
catch (Exception ex)
{
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38795 次 |
| 最近记录: |