スクロールビューアのズームインボタンに問題があります。
ビューアーの内部にはグリッドがあります。そして、そのグリッドの内側には、特定の順序で配置された一連の画像があります。理想的には、ボタンをクリックするだけで画像間を移動したいのですが、これを実現しました。ズームアウトボタンが機能していますが、ズームインすると...目的の場所までスクロールしません。画像の余白を使用してスクロールします。
私が抱えていると思われる問題は、スクロール可能な高さと幅が更新されないことです。
ズームアウトを押すと、次のように呼び出します。
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 double rosaryScroll.ScrollableWidth = 2584.0 double
しかし、ズームインすると(zoomFactorは1でした)、スクロール可能な高さ/幅は非常に小さいままですrosaryScroll.ScrollableHeight = 84.0 double rosaryScroll.ScrollableWidth = 0.0 double
では、ズーム呼び出し後にこのスクロール可能な高さと幅を更新するにはどうすればよいですか?InvalidateScrollInfo()は効果がないようです...