我正在设计一个名为ViewPanel
的控件(下面)。基本上它只是一个面板,它将Text
属性作为标题绘制。为此,我调整DisplayRectangle
属性以在顶部留出足够的空间来绘制一些文本。
我遇到的问题(并且经历过许多操作DisplayRectangle
的所有者绘制的控件)是,当控件调整大小时,它的子控件似乎落后了一点。
示例:
正如你在这里看到的那样,我有一个ViewPanel
控件,它绘制了一个蓝色标题栏,同时注意ViewPanel
在每个方向都填充了16px!
ViewPanel
控件只有一个孩子(ListView
)
我调整了控件的大小 - 注意ViewPanel
如何正确地绘制了标题栏,但孩子没有相应地重新定位。
问题:
负责更新子控件的位置是什么?我需要覆盖一些东西吗?
答案 0 :(得分:-2)
已解决(对于任何其他所有者绘图控件):
protected override void WndProc(ref Message m)
{
const int WM_WINDOWPOSCHANGED = 0x0047;
base.WndProc(ref m);
if (m.Msg == WM_WINDOWPOSCHANGED)
{
//Make changes to your display rectangle here...
this.PerformLayout();
}
}