我不知道这是否已经回答但是我想要做的是我有一个带3行的parentGrid,前两个是菜单条和工具栏,第三行是填充了的子网格从工具栏中选择的选项。问题是我希望在子网格中加载的表单的高度不超过我在parentGrid中设置该行所等的高度。
有没有一种有效的方法呢?
这里基本上是我的代码
<Grid x:Name="ParentGrid" Margin="0" >
<Grid.RowDefinitions>
<RowDefinition Height="22"></RowDefinition>
<RowDefinition Height="90"></RowDefinition>
<RowDefinition Height="544*"></RowDefinition>
<!--516<RowDefinition Height="80*"></RowDefinition>
<RowDefinition Height="10*"></RowDefinition>-->
</Grid.RowDefinitions>
<DockPanel></DockPanel><!--Dock Panel Menu Strip-->
<DockPanel></DockPanel><!-- Dock Panel ToolBar-->
<Grid x:Name="ChildGrid" Grid.Row="2" Height="544">
</Grid>
</Grid>
答案 0 :(得分:0)
将RowDefinition中的高度设置为您想要的Grid高度,然后使用Height="*"
创建额外的RowDefinition以占用剩余空间
<Grid x:Name="ParentGrid" Margin="0" >
<Grid.RowDefinitions>
<RowDefinition Height="22"></RowDefinition>
<RowDefinition Height="90"></RowDefinition>
<RowDefinition Height="544"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<DockPanel></DockPanel><!--Dock Panel Menu Strip-->
<DockPanel></DockPanel><!-- Dock Panel ToolBar-->
<Grid x:Name="ChildGrid" Grid.Row="2">
</Grid>
</Grid>
RowDefinitions中的*
表示“所有剩余空间”。向其添加数字可定义列将获得的剩余空间比率。例如,如果您说一列将是1*
而另一列将是2*
,则意味着第二列将占用两倍于第一列的空间。如果您有一列占用544*
而另一列占用10*
,则意味着可用空间将分成554个部分,544个部分将被分配到第一列,将给出10个部分到第二栏。
答案 1 :(得分:0)
对我有用的解决方案是,我使用Grid
作为容器,而不是使用ScrollViewer
作为内容子