控件在.DisplayRectangle
中报告其显示矩形——如果设置了.Padding
,查找控件可用区域的最简单方法是什么?
例如,一个Label
的.DisplayRectangle
总是等于.ClientRectangle
,即使.Padding
不是(0,0,0,0)
。在注意.Padding
设置(以及任何可能限制"净"显示区域的附加属性)之后,我想获得.ClientRectangle
中的矩形的大小。
是否有一些方法,或其他框架支持的方式来做到这一点?我是否需要重新编码那些可能已经在框架代码中的矩形计算?
Padding不是对Display Rectangle的简单修改。有些内置控件考虑到了这一点,有些则没有。
最好是阅读关于填充的文档,看看哪些部分适合你。
希望正确的简单答案是"不,没有框架方法。"在
下面创建你自己的likeprivate Rectangle GetPaddedRectangle(Control control)
{
var rect = control.ClientRectangle;
var pad = control.Padding;
return new Rectangle( rect.X + pad.Left,
rect.Y + pad.Top,
rect.Width - (pad.Left+pad.Right),
rect.Height - (pad.Top+pad.Bottom));
}