C# 如何计算scrollViewer的偏移量?

C# 如何计算scrollViewer的偏移量?,c#,wpf,scrollviewer,C#,Wpf,Scrollviewer,有人知道ScrollToHorizontalOffset和ScrollToVerticalOffset与窗口大小的比率吗?有经验法则吗 给定一个X,Y,我想使窗口在X,Y上居中,那么偏移量是多少?不,这不起作用: scrollViewer.ScrollToHorizontalOffset(X); scrollViewer.ScrollToVerticalOffset(Y); 在做一些测试时,scrollViewer似乎需要大约28个步骤才能滚动到2048年的2048个窗口。没有经验法则这样

有人知道ScrollToHorizontalOffset和ScrollToVerticalOffset与窗口大小的比率吗?有经验法则吗

给定一个X,Y,我想使窗口在X,Y上居中,那么偏移量是多少?不,这不起作用:

 scrollViewer.ScrollToHorizontalOffset(X);
 scrollViewer.ScrollToVerticalOffset(Y);

在做一些测试时,scrollViewer似乎需要大约28个步骤才能滚动到2048年的2048个窗口。

没有经验法则这样的东西

ScrollView。范围是完整的大小

ScrollViewer。视口是可见大小

ScrollViewer.VertiacalOffset是当前的Y偏移值


ScrollViewer.HorizontalOffset是当前的X偏移值。

因此,如果您在ScrollViewer中有一个图像(2048 X 2048),并且您有一个X,Y,您将如何使ScrollViewer在X,Y上居中?图像是2048x2048,即范围。可见部分为600x600。如果你想把滚动条放在中间,只需计算一下:Y=2048/2-600/2