WPF布局之谜

时间:2009-09-22 14:45:24

标签: wpf xaml layout

假设我在一个窗口中有两个元素。
我希望元素A 来填充所有未使用的顶点空间,并且至少总是如此。 200px高度 元素B 将具有很少的固定大小(扩展器)并且应该给出它所需的空间(但是对于A保留至少200px)。如果窗口中没有足够的可用空间,则B应该是可滚动的。

这接近我想要达到的目标,但DockPanel不尊重MinHeight财产。

<DockPanel>
  <ScrollViewer DockPanel.Dock="Bottom">
    <B/>
  </ScrollViewer>
  <A MinHeight="200"/>
</DockPanel>

有没有办法使用WPF原生面板?

1 个答案:

答案 0 :(得分:2)

DockPanel将始终按照定义的顺序处理面板;它不会因为最后一个元素具有MinHeight而使对接元素变小。

我会使用网格:

<Grid>
  <Grid.RowDefinitions>
    <RowDefinition Height="*" MinHeight="200" />
    <RowDefinition Height="Auto" />
  </Grid.RowDefinitions>
  <A Grid.Row="0"/>
  <ScrollViewer Grid.Row="1">
    <B/>
  </ScrollViewer>
</Grid>