控件在.DisplayRectangle
中报告其显示矩形 - 如果设置了.Padding
,找到控件可用区域的最简单方法是什么?
例如,Label
.DisplayRectangle
始终等于.ClientRectangle
,即使.Padding
不是(0,0,0,0)
。我想在注意.ClientRectangle
设置之后获取.Padding
中矩形的大小(以及任何其他属性可能会限制“净”显示区域)。
是不是有一些方法或其他框架支持的方法呢?我是否必须重新编码可能已经在框架代码中的所有矩形计算?
答案 0 :(得分:2)
填充不仅仅是对Display Rectangle的直接修改。一些内置控件会将其考虑在内,有些则没有。
最好是阅读Padding的文档,看看哪些部分适用于你。
希望目标简单的答案是“不,没有框架方法。如下所示建立自己的”
private 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));
}