如何将两个面板的一侧与顶部和填充的停靠属性重叠?

How to overlap one side of two panels with dock properties of Top and Fill for each?

我有一个无边框表单,我想使用两个面板为其制作边框。一种是成为头衔持有者,为此我将停靠栏 属性 设置为顶部。另一个,即表单内容区域,设置为停靠属性 of fill.

现在,在标题栏面板的正下方,两个面板的边框 'add up' 使其稍微更粗,这是我要解决的问题。看看下面的图片。

我需要像面板任何其他边一样的粗边框,不需要额外的宽度。

标准 Panel 无法完成您想要的(我假设 WinForms)。您可以:

  1. 创建自己的 Panel 后代并自己绘制(应该不难)
  2. 要聪明:

    2.1 创建一个覆盖两个面板的面板:为其添加边框并将 PaddingMargin 设置为 0

    2.2 使您的顶部面板和底部面板无边框并位于父面板内

    2.3 制作一个 1px 高度(或边框厚度)的面板停靠在顶部、顶部面板下方和底部(客户端停靠)面板上方,无边框但在父面板中填充了边框颜色

如果您的边框不是 3D,这看起来会像您期望的那样: