是否可以将一个组件放在后面,将一个组件放在不同的网格上

时间:2015-08-11 14:47:43

标签: c# wpf xaml

我正在使用C#WPF开发一个项目。这是我正在使用的示例代码:

MainWindow.xaml:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid Name="topGrid" Grid.Row="0" />
    <Grid Name="bottomGrid" Grid.Row="1"/>
</Grid>

MainWindow.xaml.cs:

ContentGrid c = new ContentGrid();
topGrid.Children.Add(c);

BottomGrid b = new BottomGrid();
bottomGrid.Children.Add(b);

Grid.SetZIndex(topGrid, 1);

BottomGrid.xaml:

<Grid Background="Blue"/>

ContentGrid.xaml:

<Grid Background="Red">
    <Rectangle Fill="Green" Width="10" HorizontalAlignment="Left" Margin="100,0,0,-50"/>
    <Rectangle Fill="Yellow" Width="10" HorizontalAlignment="Right" Margin="0,0,100,-50"/>
</Grid>

这意味着BottomGrid(蓝色)将位于ContentGrid(红色)的后面,因此两个矩形将位于蓝色BottomGrid之上。我的问题是:

是否可以让左侧矩形(绿色)位于蓝色BottomGrid上方,而右侧矩形(黄色)位于其后面?右边的矩形应该仍然位于红色的ContentGrid上方。

由于

1 个答案:

答案 0 :(得分:1)

我希望,我的要求是正确的。使用单个网格是不可能的(因为您必须将蓝色网格直接推入红色网格内)。但是有两个网格是可能的:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <Grid Grid.Row="0" >
        <Grid Background="Red">                
            <Rectangle Fill="Yellow" Width="10" HorizontalAlignment="Right" Margin="0,0,100,-50"/>
        </Grid>
    </Grid>
    <Grid Grid.Row="1">
        <Grid Background="Blue"/>
    </Grid>
    <Grid Grid.Row="0" >
        <Grid>
            <Rectangle Fill="Green" Width="10" HorizontalAlignment="Left" Margin="100,0,0,-50"/>
        </Grid>
    </Grid>
</Grid>

结果如下:

Result