通用Windows应用程序中的BringToFront / SetZIndex

问题描述 投票:1回答:2

显然Grid.SetZIndex()不存在。不像ctrl.SetValue(Grid.ZIndexProperty…)

那么如何将一个Grid的孩子带到前线呢?

c# xaml windows-store-apps winrt-xaml win-universal-app
2个回答
4
投票

ZIndex仅在Canvas控制内有效。

<Canvas>
    <Grid Canvas.ZIndex="0"/>     
    <Grid Canvas.ZIndex="1"/>     
</Canvas>

否则,例如在grid中,文档大纲中的位​​置确定z索引。也就是说,它在XAML页面中的后者越高,它在Z索引中就越高。

祝你好运!


0
投票

在这种情况下,您可以在儿童中找到UIElement并将其移到顶部:

// Type of parent element could be any your control
public static void MoveUiOnTop(UIElement element, Grid yourParentElement)  
{
   int index = yourParentElement.Children.IndexOf(element);
   if (index != -1)
     yourParentElement.Children.Move((uint)index, (uint)yourParentElement.Children.Count - 1);
}

这段代码写在“膝盖上”,但我不时使用这个小技巧。或者您可以尝试创建这样的扩展:

public static void MoveUiOnTop(this UIElement element, T yourParentElement)

但请注意父元素的类型或不使用泛型。

© www.soinside.com 2019 - 2024. All rights reserved.