在进入我的问题之前,让我解释一下我的设置:
首先: 我有一个 PictureBox,其中包含一个在运行时生成的位图。此位图可以有不同的宽度,但始终保持相同的高度。
第二: PictureBox 不支持滚动,因此,我将 PictureBox 停靠在面板中。最初,我使用了面板的自动滚动功能,但在发现 through this article 后放弃了它。 PictureBoxes 有大小限制。我还了解到最好使用小的 PictureBoxes 并且只绘制需要看到的内容而不是整个图像。
第三: 所以我添加了一个 HScrollBar,它非常好,但我似乎无法弄清楚滚动条有多大背后的数学原理。我尝试将滚动条的最大值设置为位图的长度,但如您所见,滚动条的大小在我的中比使用自动滚动功能时 Windows 放入的要小得多。
我的问题是,滚动条大小背后的数学原理是什么?我如何在我的自定义滚动条中模拟它?
如果我的问题不清楚,请告诉我,我会尽力使其更易于理解。提前感谢您的帮助!
最佳答案
我想出了问题所在。也许我应该再试一试。 :)
答案在于 LargeChange
属性。我让 Maximum
位于位图的总宽度,然后将 LargeChange
设置为我想要显示的宽度。 (即 PictureBox 的宽度)
“滚动条”的大小由 LargeChange
的值与 Maximum
的值的比率决定。例如,如果要显示的宽度 (LargeChange
) 为 100,总宽度 (Maximum
) 为 300,则“滚动条”大小将为滚动条的 1/3长度。 (100/300)。
关于c# - 如何确定滚动条的正确最大值 c# .NET(Windows 是怎么做到的?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19429253/