我有一个包含六行的网格(每行是一个堆栈布局)。
在我的第五行(即第五个堆栈布局)中,我有一个网格。我为该网格提供了100%的宽度,但该网格没有占据宽度的100%。
如何解决此问题?
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Vertical">
</StackPanel>
<StackPanel Grid.Row="1" Orientation="Vertical">
</StackPanel>
<StackPanel Grid.Row="2" Orientation="Vertical">
<Grid Width="100%">
</Grid>
</StackPanel>
<StackPanel Grid.Row="3" Orientation="Vertical">
</StackPanel>
</Grid>
答案 0 :(得分:2)
我认为,您可以尝试删除堆栈面板,并且可以在Grid上使用Grid.Row,这样可以解决问题。
答案 1 :(得分:1)
我之前没有看到UWP中使用的百分比,甚至认为它不是有效的语法。我认为您应该使用HorizontalAlignment="Stretch"
来将Grid
拉伸到全宽。
答案 2 :(得分:1)
Width=100%
不支持。
如果你想让Grid的宽度与StackPanel的宽度相同,并在调整窗口大小时自动调整大小,你也可以直接删除Width
,如下所示:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Orientation="Vertical">
</StackPanel>
<StackPanel Grid.Row="1" Orientation="Vertical">
</StackPanel>
<StackPanel Grid.Row="2" Orientation="Vertical">
<Grid Background="Red">
<TextBlock Text="abc"></TextBlock>
</Grid>
</StackPanel>
<StackPanel Grid.Row="3" Orientation="Vertical">
</StackPanel>
</Grid>