在我的图形应用程序中,画布区域有一些图形。与x-cordinate和y-cordinate关联的滚动条必须与画布的此视口区域同步(图形存在的位置)。 当用户点击缩放按钮时,图表会放大和缩小。现在问题是为此缩放设置滚动条。在放大或缩小时,滚动条的视口应与缩放百分比同步。
在这种情况下如何设置滚动条的拇指大小。 我有滚动条的最高,最低和值属性 以及zoomfactor的整个图形宽度和高度。
如何设置 ViewportSize 或滚动条的缩略图大小?
我使用下面的代码片段来获取ViewportSize但不准确
mScrollBarY.ViewportSize = (double)yAxis.CurrentValueRange;
其中 CurrentValueRange 给出放大的可见范围。
答案 0 :(得分:3)
在这里,我看到两种方法:
修改强>
在两种变体中,您需要定义一些因子来增加或减少。设为 scale_factor 。以下是更新ScrollBar
的方法:
void updateScrollBar()
{
scrollBar.Minimum = 0;
scrollBar.Maximum = extent;
scrollBar.ViewportSize = viewport * scale_factor;
scrollBar.SmallChange = 10 * scale_factor;
}
放大处理程序:
scale_factor /= 2;
updateScrollBar();
缩小处理程序:
scale_factor *= 2;
updateScrollBar();
顺便说一句,我在msdn forum找到了以下公式:
ThumbSize = TrackLength * ViewportSize / (Maximum - Minimum + ViewportSize)