我正在使用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上方。
由于
答案 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>
结果如下: