c# - 如何确定滚动条的正确最大值 c# .NET(Windows 是怎么做到的?)

标签 c# .net bitmap scrollbar picturebox

enter image description here

在进入我的问题之前,让我解释一下我的设置:

首先: 我有一个 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/

相关文章:

c# - 通过 Redmine .NET API 设置新问题的作者

delphi - 使用delphi将PNGImage转换为灰度

c# - OData 路由返回 404 Not Found

c# - DependencyProperty 的 RegisterAttached() 和 Register() 中的不同行为

c# - visual studio 安装程序安装项目将不正确的 .net 框架版本检测为依赖项

c# - 如果特定单元格值在数据表 C# 中包含零,则跳过整行

c# - 如何将位图图像从自定义程序集返回到 SSRS 报告?

android - 如何显示位图资源与使用形状绘制命令?

c# - centos7中net core 3的tcpclient无法收发数据

c# - Microsoft Edge WebDriver - 意外错误。未知错误