当控件在面板内时,跟踪LocationChanged和SizeChanged用户控件事件

时间:2018-08-06 18:50:33

标签: c# .net winforms dwm

我正在开发一个用于注册/绘制必须覆盖控件表面的DWM缩略图的用户控件,请参见示例:

enter image description here

我在usercontrol派生类中重写了 OnLocationChanged OnSizeChanged 事件调用程序,以了解控件位置或大小何时更改,因此我可以修复/更新DWM缩略图的位置和大小,但是,当我的控件位于容器控件(例如 Panel )中时,不会触发这些事件,因此,在下面的这张图中,您可以看到控件在内部时发生的情况面板,然后将父窗体的大小调整到右侧:

enter image description here

...由于无法确定用户控件的位置相对于父窗体已发生了变化,因此DWM缩略图的位置与以前相同。调整表单大小时,其大小也会发生变化。

哪种方法是解决此问题的好方法?我的用户控件中的 LocationChanged SizeChanged 事件对于真正跟踪相对于容器父级和/或父级表单的那些更改似乎没有用...

0 个答案:

没有答案