C# 需要有关XAML网格格式设置错误的帮助吗
我有下面的xaml页面,它的格式完全符合我的预期。前两行和最后一行仅占用元素允许的空间。然后,第三行占用页面上的剩余空间。以下是按预期工作的xaml:C# 需要有关XAML网格格式设置错误的帮助吗,c#,wpf,xaml,C#,Wpf,Xaml,我有下面的xaml页面,它的格式完全符合我的预期。前两行和最后一行仅占用元素允许的空间。然后,第三行占用页面上的剩余空间。以下是按预期工作的xaml: <Grid> <!--Parent Grid--> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
<Grid>
<!--Parent Grid-->
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<!--Parent Row 0-->
<Grid Grid.Row="0" Margin="5">
<Label Content="Auto Row 0"></Label>
</Grid>
<!--Parent Row 1-->
<Grid Grid.Row="1" Margin="5">
<Label Content="Auto Row 1"></Label>
</Grid>
<!--Parent Row 2-->
<Grid Grid.Row="2" Margin="5">
<Label Content="Stretch Row 2"></Label>
</Grid>
<!--Parent Row 3-->
<Grid Grid.Row="3" Margin="5">
<Label Content="Auto Row 3"></Label>
</Grid>
</Grid>
但是,此页面将加载到以下网格的第一行。当它加载到此行时,每一行都具有“自动”特性。因此,每一行不会紧挨着另一行,而第三行会占用页面上所有剩余的空间
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<StackPanel>
<Controls:SettingsTabControl Grid.Row="0" x:Name="mytab"></Controls:SettingsTabControl>
</StackPanel>
<Controls:SettingsFooter Grid.Row="1" />
</Grid>
如何修复此问题?在第二部分使用DockPanel而不是网格
<DockPanel x:Name="LayoutRoot">
<Controls:SettingsFooter DockPanel.Dock="Bottom" />
<Controls:SettingsTabControl x:Name="mytab" />
</DockPanel>
在第二部分使用DockPanel而不是网格
<DockPanel x:Name="LayoutRoot">
<Controls:SettingsFooter DockPanel.Dock="Bottom" />
<Controls:SettingsTabControl x:Name="mytab" />
</DockPanel>
Grid.Row=“0”应位于StackPanel@Marco,这无关紧要:如果未设置行,则默认为0更正。将其移动到StackPanel没有任何效果我可以完全删除控件的设置以及包含它的行,并且它对我的problemGrid没有任何影响。row=“0”应位于StackPanel@Marco,这无关紧要:如果未设置行,则默认为0更正。将其移动到StackPanel没有任何效果我可以完全删除控件的设置以及包含它的行,并且对我的问题没有任何影响它可以工作!但是,你能解释一下为什么会修复它吗?DockPanel的默认属性是允许最后一个孩子使用所有可用空间(你可以关闭它)。网格不会-在网格上获得相同的效果更复杂-这就是为什么当我可以的时候,我总是使用dockpanel。它可以工作!但是,你能解释一下为什么会修复它吗?DockPanel的默认属性是允许最后一个孩子使用所有可用空间(你可以关闭它)。网格不会-在网格上获得相同的效果更复杂-这就是为什么当我可以的时候,我总是使用dockpanel。