如何将网格拉伸和延伸到父边距

How to stretch and extend a grid up to a parent margin

我有一个非常简单的结构(一个更复杂的结构的简化),如下所示:

所以 xaml 是:

<Grid >
<Grid.ColumnDefinitions>
  <ColumnDefinition Width="Auto" />
  <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border x:Name="Border1Tab3" BorderBrush="Gainsboro" BorderThickness="5" Width="200" Margin="10,10,10,10" >
</Border>
<Border x:Name="Border2Tab3" BorderBrush="Gainsboro" Background="{x:Null}"  MinWidth="100" BorderThickness="5" Grid.Column="1" Margin="10,10,10,10"  >
  <StackPanel Name="spTab3" Margin="0" Background="Red" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">  <------RED

    <Grid Name="grd7Tab3" Visibility="Visible" Background="Blue"  ShowGridLines="True"  VerticalAlignment="Stretch"  Margin="10">  <----BLUE
    </Grid>

  </StackPanel>
</Border>

如您所见,我将红色放在堆栈面板中,将蓝色放在网格中。我想将蓝色网格扩展到所有红色堆栈面板,但结果是网格没有显示。

如果我在红色堆栈面板中放置一些东西,它只会达到内部元素的大小,而不是达到所有父元素的大小。

我是 wpf 的新手,但一般来说,如果我设置 margin=0 和 stretch schouldn't a UI element take all the speak of its parent?

感谢您的帮助 帕特里克

只需将 StackPanel 更改为 Grid,这似乎更适合您的情况

 <Border x:Name="Border2Tab3" BorderBrush="Gainsboro" Background="{x:Null}"  MinWidth="100" BorderThickness="5" Grid.Column="1" Margin="10,10,10,10"  >
        <Grid Name="spTab3" Margin="0" Background="Red" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
            <Grid Name="grd7Tab3" Visibility="Visible" Background="Blue"  ShowGridLines="True"  VerticalAlignment="Stretch"  Margin="10">

            </Grid>
        </Grid>
    </Border>