如何将控件隐藏在另一个控件下?

时间:2018-10-02 16:59:13

标签: c# .net wpf

所以我试图隐藏一个我有第二个Column定义的控件,但是由于某种原因,使用ZIndex属性执行该操作却无效。

那么将我的StackPanel隐藏在第0列网格下方的第1列中的最有效方法是什么

<Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>

        <Grid Column="0">
            <Grid Background="Orange"/>
        </Grid>

        <Grid Column="1">
            <StackPanel Width="100"
                        Height="100"
                        Background="#212121" Margin="-102,158,266,161"/>
        </Grid>

    </Grid>

1 个答案:

答案 0 :(得分:-1)

它在这里用于设置ZIndex。

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>

    <Grid Column="0" Panel.ZIndex="2">
        <Grid Background="Orange"/>
    </Grid>

    <Grid Column="1" Panel.ZIndex="1">
        <StackPanel Width="100"
                    Height="100"
                    Background="#212121" Margin="-102,158,266,161"/>
    </Grid>

</Grid>

如果只想隐藏它,则可以设置Visibility

<Grid Visibility="Hidden"/>

您还可以通过更改XAML中的网格顺序来控制ZIndex。

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>

    <Grid Column="1">
        <StackPanel Width="100"
                Height="100"
                Background="#212121" Margin="-102,158,266,161"/>
    </Grid>

    <Grid Column="0" Width="150">
        <Grid Background="Orange"/>
    </Grid>

</Grid>

如上所述,如果您真的想跨列,则应设置Grid.ColumnSpan <Grid Column="0" Grid.ColumnSpan="2">