停靠面板具有为最后一个停靠控件分配所有剩余空间的属性。这会产生以下效果:ping-ping-ping-piiiing,缺乏真实的视觉表现。
我希望达到这样的情况:最顶层和最底层的控制被压缩,剩下的空间被分配给中间控件(或者根本没有,因为窗口的中间应该是空的,视觉上引人注目的控件只放在边缘)。创建的效果将是:ping-ping-piiiing-ping。
想象一下,窗口顶部会有所有标签,盒子等(停靠在面板顶部),底部有一堆按钮的堆叠面板(停靠在面板底部并水平放置)右对齐),类似于消息框。
我怎样才能实现这一目标?也许停靠面板需要与其他一些布局相结合?或许我应该完全使用不同的布局?多年前,在Swing,有这个北/南/东/西集装箱。
答案 0 :(得分:2)
如果您想让最后一个元素成为“中间”元素并占用剩余空间,您可以设置此布局:
std::shared_ptr
这是什么意思?请注意,最后一个元素(空标签)没有对接。 通常,如果“last child”表示一些可扩展的UI控件(或控件集)(如ListBox),则使用此方法。
<强>替代:强>
为了您的目标,您还可以设置一个包含三行的表格,并为中间行提供所有剩余高度:
<DockPanel LastChildFill="True">
<StackPanel Orientation="Horizontal" DockPanel.Dock="Top">
Labels, boxes
</StackPanel>
<StackPanel Orientation="Horizontal" DockPanel.Dock="Bottom">
Buttons here
</StackPanel>
<Label></Label>
</DockPanel>