【发布时间】:2019-12-17 20:31:41
【问题描述】:
DockPanel如何确定底部的Height?
如果提供了明确的 Height 属性,则将使用该属性。
如果没有提供Height 但有MinHeight 和MaxHeight 它似乎一直下降到MinHeight,像这样:
<DockPanel>
<Button Name="btn"
DockPanel.Dock="Bottom"
MinHeight="80"
MaxHeight="160"
Content="{Binding ElementName=btn, Path=ActualHeight}"
/>
<Button Content="Center"/>
</DockPanel>
我使用绑定将ActualHeight 显示为按钮内容。
但并非总是如此!当我使用ScrollViewer 作为底部组件时,它似乎使用了MinHeight (20) 和MaxHeight (160) 之间的中间值(33)。
<DockPanel>
<ScrollViewer Name="sv"
DockPanel.Dock="Bottom"
MinHeight="20"
MaxHeight="160">
<TextBlock Text="{Binding ElementName=sv, Path=ActualHeight}"/>
</ScrollViewer>
<Button Content="Center"/>
</DockPanel>
这里令人惊讶的事实是,它似乎使用了比只查看组件的Height/MinHeight 更复杂的大小调整算法。
也许它也在查看组件类型,所以对于ScrollViewer,它也考虑了内容范围。
DockPanel 文档并没有深入解释默认算法。
在哪里可以找到完整的说明?
这些 WPF 标准控件的源代码是否可用?
【问题讨论】: