C# WPF - 顶部和底部停靠但可扩展的中间部分

Posted

技术标签:

【中文标题】C# WPF - 顶部和底部停靠但可扩展的中间部分【英文标题】:C# WPF - Docked top and bottom but expandable middle section 【发布时间】:2014-02-21 19:25:37 【问题描述】:

我有一个 WPF 窗口,顶部有一个“设置”菜单选项,底部有一个“下一个”和“上一个”按钮。在窗口中间,我在选项卡控件周围有一个滚动查看器,以防选项卡控件中的数据超过窗口高度。但是,如果用户最大化他们的窗口,我想让 m WPF 移动底部的按钮并展开中间。

关于从哪里开始有什么建议吗?

【问题讨论】:

您使用的是什么类型的布局? Grid? 是的。整个 WPF 位于一个 Grid 中,第一行是导航按钮,另一行是 WPF,第三行是 Next 按钮。 你应该能够使第二行的高度可扩展,我刚刚发布了一个答案来说明如何。 "...另一个中的 WPF..." 所以Buttons 不是 WPF?抱歉,只是搞笑。 【参考方案1】:

如果我正确理解您的问题,您希望窗口的顶部和底部保持固定大小,但在窗口展开时允许中间部分增大?如果您使用的是Grid 布局,那么您可以通过以下方式实现:

<Grid>
  <Grid.RowDefinitions>
    <RowDefinition Height="30" />
    <RowDefinition Height="1*" />
    <RowDefinition Height="30" />
  </Grid.RowDefinitions>
  <your controls go here>
</Grid>

.. 将您的控件放在这里,第 0 行应该是顶部的菜单选项,第 1 行是会随着窗口大小而增长的中间部分,第 2 行将是包含Button 控件的底部行。

【讨论】:

【参考方案2】:

不必固定第一行和最后一行的宽度,设置为“自动”会将行高调整为该行内控件的高度。中间的行 会使其扩展到可用高度。

<Grid>
  <Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="*" />
    <RowDefinition Height="Auto" />
  </Grid.RowDefinitions>
  <Button Grid.Row="0" />
  <Button Grid.Row="1" VerticalAlignment="Stretch" /> <!-- Will take available space -->
  <Button Grid.Row="2" />
</Grid>

【讨论】:

谢谢! 是我一直在寻找的。​​span>

以上是关于C# WPF - 顶部和底部停靠但可扩展的中间部分的主要内容,如果未能解决你的问题,请参考以下文章

DockPanel 中的 WPF4 TabControl/Grid 隐藏了 StatusBar

我可以使 div 透明,但可点击 [重复]

停靠面板布局

实现移动端顶部与底部固定,内容区优化的效果

在 Recyclerview Kotlin 的顶部、中间和底部添加分隔线

我应该为情节提要效果使用哪些 WPF 布局和控件