【发布时间】:2015-01-30 13:10:03
【问题描述】:
我有以下代码:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" TextBlock.Foreground="Blue" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="test" Grid.Row="0" />
<TextBlock Text="test" Grid.Row="2" />
</Grid>
<Grid Grid.Row="1" TextBlock.Foreground="Red" ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="test" Grid.Row="0"/>
<TextBlock Text="test" Grid.Row="2"/>
</Grid>
</Grid>
这只是两个相等的三行网格,所有三行的大小都应该相等(也就是说,每个网格都在自己的网格中)。
包含在高度为“*”的父行中的底部网格的行为与预期相同。每一行的大小都是一样的,不管里面放了什么。
但是顶部网格,包含在高度为 Auto 的一行中,似乎丢弃了 Height="*",并且表现得好像它们有 Height="Auto"。第一行和第三行的高度正好是他们要求的高度,第二行是空行,高度为 0。这是正常行为吗?如果是这样,为什么会这样?
它是这样显示的:
这就是我期望它的工作方式:
【问题讨论】:
-
顶部网格没有丢弃
* Width标记,它实际上使用了它!为什么您可以将其视为Auto是因为PARENT网格只允许Auto。因此,您的内部网格正在使用 * 父级自动高度的宽度
标签: wpf