C# 展开最后一行网格以填充wpf应用程序中的窗口
我在WPF应用程序中设置了以下网格C# 展开最后一行网格以填充wpf应用程序中的窗口,c#,wpf,C#,Wpf,我在WPF应用程序中设置了以下网格 <Grid> <Grid.RowDefinitions> <RowDefinition Height="220" /> <RowDefinition Height="40" /> <RowDefinition Height="80" /> <RowDefinition Height
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="220" />
<RowDefinition Height="40" />
<RowDefinition Height="80" />
<RowDefinition Height="180*" />
</Grid.RowDefinitions>
<!-- some content -->
</Grid>
我希望最后一行占据其父行中可用的高度。但它似乎不尊重最后一行定义中的“*”命令
请注意,我希望所有其他行的高度都是固定的
这可能吗?如果是,怎么做?感谢您的帮助或指点。从最后一行删除
Height
属性:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="220" />
<RowDefinition Height="40" />
<RowDefinition Height="80" />
<RowDefinition/>
</Grid.RowDefinitions>
<!-- some content -->
</Grid>
将height=“*”放在最后一行
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="220" />
<RowDefinition Height="40" />
<RowDefinition Height="80" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
你写的应该没问题(尽管@Bolu评论说,在这种情况下,
180*
可以替换为*
)。如果最后一行中的内容没有扩展以填充可用大小,我会怀疑以下情况之一:
网格
可能嵌套在布局面板下方的某个位置,该布局面板不排列其子项以填充所有可用的垂直空间。例如,网格
面板的祖先之一是堆栈面板
?测试这是否是罪魁祸首的一个好方法是注释掉整个网格
,并将其替换为背景易于识别的边框
(例如,洋红色
),然后查看它是否占据了您希望网格
填充的整个区域值
垂直对齐
设置为除拉伸
之外的任何内容为完整性起见,Height=“*”也可以使用,但含义略有不同。最后一行中的内容是什么,请确保已从中删除
垂直对齐
和高度
属性设置。此外,它也可以使用,但实际上不需要使用180*
,因为这是唯一剩下的一行。你告诉网格把剩下的空间平均分为180个部分,最后一行将占据所有部分(180个)。只有当您有多行并且希望它们不均匀地占用剩余的空间时(例如,1*
(或者只是*
),才有意义,2*
意味着分成3部分,一部分占1,另一部分占2)。