如何在C#中确定Panel的完整大小(包括滚动条)

时间:2011-07-29 19:11:39

标签: .net winforms canvas scroll panel

我遇到的问题是面板,其尺寸为200x200像素。对于我正在编写的程序,在任何给定时间我都需要知道这个面板有多大,但是当AutoScroll打开并且插入大内容时面板扩展(并获得滚动条)时,这变得很困难。

我看了一下AutoScrollPosition和AutoScrollOffset,甚至尝试在我的解决方案中实现这一点 - 但是看起来这只会在滚动条处于某个位置时告诉您有关面板的信息 - 而在任何给定时间我都需要了解面板的大小。

所以基本上,假设某些内容已经输入到面板中并考虑到滚动距离,它实际上变成了一个600x750像素的面板。有谁知道我能以任何方式获得这些信息吗?

由于

2 个答案:

答案 0 :(得分:4)

"包括滚动条"条款使问题无法回答。因为滚动条仅应用于DisplayRectangle。

您可以获得所需的面板大小,以便PreferredSize属性中不需要滚动条。您可以从SystemInformation.Horizo​​ntalScrollBarHeight和VerticalScrollBarWidth属性中获取滚动条的高度和宽度。

答案 1 :(得分:0)

当Panel的内容大于其ClientSize时,AutoScrollMinSize应该等同于Panel的可滚动区域。