WPF ScrollViewer 的 ViewportWidth 没有更新

WPF ScrollViewer's ViewportWidth is not updating

我有一个滚动查看器,我想在到达边缘时向右滚动。我正在检测鼠标位置并将其与滚动查看器的 ViewportWidth 进行比较。它首先起作用,当拖动到边缘时它会滚动。然而,一旦我放手,再试一次,或者如果我按住鼠标并移回滚动查看器,它会继续。

我注意到的是,无论它最初的宽度是多少(我第一次到达边缘时),它似乎都认为 ViewportWidth 仍然是相同的,即使我已经滚动了。因此,一旦达到特定宽度,它就会滚动。

有什么方法可以让 ViewportWidth 在每次滚动时更新?我尝试在更改偏移量后将 UpdateLayout 放入函数中,但它没有用。这里的目标是让宽度不断更新,这样我就可以检查视口的边缘是否发生了变化。

通过结合 ViewportWidthHorizontalOffset 解决了我的问题。添加它们,然后将 pt.X 与它进行比较,我得到了视口和溢出区域之间的确切区域,让我可以滚动。