winforms - 计算控件内部显示矩形(减去填充)的最简单方法是什么?

标签 winforms label

控件在 .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/

相关文章:

d3.js - 通过D3过渡逐渐更改显示为svg文本的数字

C# MySQL连接多个select语句

CSS 标签 :before - show icon before the label only on :hover and :active

c# - TableLayoutPanel 的控制列属性

c# - 为什么从数据源中删除项目时,DGV 会导致未捕获的异常?

python - 如何使用 Python 根据设备名称获取卷标

gwt - 在GWT中,当鼠标悬停时更改标签的背景

C# 标签工具提示多次出现

.net - Windows窗体错误解析VB.NET

c# - 根据字符列表设置文本框的文本