我有一个我正在尝试调试的应用程序,我正在通过snoop在运行时查看各种设置。
我遇到的问题是:
有一个网格,高度为50.4。它有3个RowDefinitions,每个高度为1星(*)。因此可以假设每个RowDefinition的实际高度为50.4 / 3(16.8)。但是,我可以看到前两个RowDefinitions的ActualHeight为25.2,第三个的ActualHeight为0.所有三个的高度均为1星。
这怎么可能?我只能看到你如何能够实现这种状况。您不能将ActualHeight语法更改为只读。必须在网格的编配通道中设置高度。
有没有人知道会产生这种情况的任何情况。
答案 0 :(得分:1)
我找到了答案 - 我不知道它是WPF错误,还是我没有正确阅读文档
<Border Background="Red" HorizontalAlignment="Center" VerticalAlignment="Center">
<Grid HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBox Text="123" Grid.Row="0" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBox Text="123" Grid.Row="0" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBox Text="123" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBox Text="123" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" />
<TextBox Text="123" Grid.Row="2" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="Collapsed" />
<TextBox Text="123" Grid.Row="2" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="Collapsed" />
</Grid>
</Border>
如果查看代码,您会看到有3个星号(*)大小的行,无论其内容如何,都应该具有相等的网格高度。
但是,当您折叠分配给该行的所有内容时,该行本身也会折叠。 (如果你窥探它的高度为*,但实际高度为0)
有人认为这种正常行为吗?我在过去5年的所有WPF开发中都没有听说过这个