控件在 .DisplayRectangle
中报告其显示矩形 - 如果设置了 .Padding
,那么查找控件可用区域的最简单方法是什么?
例如,Label
的 .DisplayRectangle
始终等于 .ClientRectangle
,即使 .Padding
为不是(0,0,0,0)
。我想在关注 .Padding
设置后获取 .ClientRectangle
中矩形的大小(以及任何可能限制“净”显示区域的其他属性,为此事)。
没有某种方法或其他框架支持的方法吗?我是否必须重新编码框架代码中可能已经存在的所有矩形计算?
最佳答案
填充不仅仅是对显示矩形的直接修改。有些内置控件会将其考虑在内,有些则不会。
最好阅读 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));
}
关于winforms - 计算控件内部显示矩形(减去填充)的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7978547/