小组中的“辅音”

时间:2013-12-02 16:09:18

标签: c# wpf panel

我通过“玩”System.Windows.Controls.Panel来消磨时间。我偶然发现了_zConsonant - Field。我只是想不通为什么这个字段有这样一个名字......有人可以解释整个“Z-Index”系统是如何工作的吗?

2 个答案:

答案 0 :(得分:3)

控制堆叠在彼此之上。每次在容器中添加一个组件时,它都会获得一个z-index来确定它的顺序(它控制它的“在顶部”,哪个控制在下面)。

使用“Bring To Front ...”等内容进行可视化编辑,例如,将所选控件的Z-index设置为最前面的。它决定了组件的绘制顺序(这样“前面”的东西会“覆盖”后面的东西)。

在XAML中,z-index由声明的顺序决定。靠近文件底部的事物(稍后声明)具有更高的z-index(更接近前面)。

请参阅:MSDN

答案 1 :(得分:2)

你可以为初学者阅读this

然后查看Canvas.ZIndex的文档,因为它可能会描绘出更好的图片。

TLDR; ZIndex用于指定" order"控件将显示在具有特定ZIndex的其他控件上。

奖金:我找到了一个"隐藏"控制堆叠技巧。也就是说,在XAML中,最后列出的控件将显示在另一个控件上。例如:

<Grid>
    <local:MyLowerControl DataContext="{Binding}"
                          Visibility="{Binding IsPopupNotVisible, Converter={StaticResource convertVisibility}, Mode=TwoWay}"/>

    <local:MyOverControl HorizontalAlignment="Center"
                         VerticalAlignment="Center"
                         x:Name="popup"
                         DataContext="{Binding}"
                         Visibility="{Binding IsPopupVisible, Converter={StaticResource convertVisibility}, Mode=TwoWay}" />
</Grid>

如果两个Visibilities都设置为Visible,则最后列出的控件将显示在它之前定义的任何控件上。在这种情况下,MyOverControl会显示在MyLowerControl

之上