Control.ClientRectangle 与 Control.DisplayRectangle

2023-12-22

我了解有关表单/控件的客户端矩形的概念,
但我不明白之间有什么区别
Control.ClientRectangle and Control.DisplayRectangle..

在阅读了这两个属性的 MSDN 页面后,并不清楚其中一个何时会返回与另一个不同的值。

MSDN 页面.ClientRectangle says:

控件的客户区是控件的边界减去 非客户端元素,例如:标题栏、边框、滚动条和菜单。

这很清楚。

然而 MSDN 页面.DisplayRectangle says:

对于基本控制类,这是等于客户矩形.
然而,继承控件可能想要改变这一点,如果他们的客户端 区域与其显示区域不同。

现在还不太清楚.. 在继承控件中,我想在哪里使.DisplayRectangle值不同于.ClientRectangle one?

Control.Client矩形:
https://msdn.microsoft.com/en-us/library/system.windows.forms.control.clientrectangle.aspx https://msdn.microsoft.com/en-us/library/system.windows.forms.control.clientrectangle.aspx

控制.显示矩形:
https://msdn.microsoft.com/en-us/library/system.windows.forms.control.displayrectangle.aspx https://msdn.microsoft.com/en-us/library/system.windows.forms.control.displayrectangle.aspx


DisplayRectangle 是控件的内部画布,因此当您有滚动控件时,DisplayRectangle 将大于 ClientRectangle,后者只是您在屏幕上看到的区域:

panel1.AutoScrollMinSize = new Size(0, panel1.Height * 2);
panel1.Paint += panel1_Paint;

void panel1_Paint(object sender, PaintEventArgs e) {
  e.Graphics.FillEllipse(Brushes.Red, panel1.DisplayRectangle);
  e.Graphics.DrawEllipse(Pens.Green, panel1.ClientRectangle);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Control.ClientRectangle 与 Control.DisplayRectangle 的相关文章

随机推荐