我的滚动查看器上的放大按钮有问题。
查看器的内部是一个网格。在该网格内部是一堆按特定顺序排列的图像。理想情况下,我想通过单击按钮从图像转到图像,并且我已经实现了这一点。我有一个正常工作的缩小按钮,但是当我放大时......它不会滚动到我想要的位置。我使用图像的边距滚动到它。
我似乎遇到的问题是可滚动的高度和宽度没有更新。
当按下缩小时,我调用:
zoomFactor = 1;
rosaryScroll.ZoomToFactor(zoomFactor);
rosaryScroll.InvalidateScrollInfo();
setRosaryState(rosaryState);
通过使用其边距和滚动查看器的大小将图像居中到滚动查看器上,将念珠状态滚动到查看器中的特定图像。
rosaryScroll.ScrollToHorizontalOffset(
(selectedBead.Margin.Left
+ (selectedBead.Width / 2)
+ rosaryScroll.Margin.Left / 2)
* zoomFactor);
rosaryScroll.ScrollToVerticalOffset(
(selectedBead.Margin.Top
- (selectedBead.Height / 2)
- rosaryScroll.Margin.Top / 2)
* zoomFactor);
当我缩小(zoomFactor 为 5)时,可滚动的高度/宽度很好并且易于滚动。rosaryScroll.ScrollableHeight= 2336.0 双 rosaryScroll.ScrollableWidth= 2584.0 双
但是当我放大(zoomFactor 为 1)时,可滚动的高度/宽度仍然很小 rosaryScroll.ScrollableHeight= 84.0 double rosaryScroll.ScrollableWidth= 0.0 double
那么在我的缩放调用之后如何更新这个 Scrollable Height 和 Width 呢?InvalidateScrollInfo() 似乎无效...