WPF ScrollViewer 的 ViewportWidth 没有更新
WPF ScrollViewer's ViewportWidth is not updating
我有一个滚动查看器,我想在到达边缘时向右滚动。我正在检测鼠标位置并将其与滚动查看器的 ViewportWidth
进行比较。它首先起作用,当拖动到边缘时它会滚动。然而,一旦我放手,再试一次,或者如果我按住鼠标并移回滚动查看器,它会继续。
我注意到的是,无论它最初的宽度是多少(我第一次到达边缘时),它似乎都认为 ViewportWidth
仍然是相同的,即使我已经滚动了。因此,一旦达到特定宽度,它就会滚动。
有什么方法可以让 ViewportWidth
在每次滚动时更新?我尝试在更改偏移量后将 UpdateLayout
放入函数中,但它没有用。这里的目标是让宽度不断更新,这样我就可以检查视口的边缘是否发生了变化。
通过结合 ViewportWidth
和 HorizontalOffset
解决了我的问题。添加它们,然后将 pt.X 与它进行比较,我得到了视口和溢出区域之间的确切区域,让我可以滚动。
我有一个滚动查看器,我想在到达边缘时向右滚动。我正在检测鼠标位置并将其与滚动查看器的 ViewportWidth
进行比较。它首先起作用,当拖动到边缘时它会滚动。然而,一旦我放手,再试一次,或者如果我按住鼠标并移回滚动查看器,它会继续。
我注意到的是,无论它最初的宽度是多少(我第一次到达边缘时),它似乎都认为 ViewportWidth
仍然是相同的,即使我已经滚动了。因此,一旦达到特定宽度,它就会滚动。
有什么方法可以让 ViewportWidth
在每次滚动时更新?我尝试在更改偏移量后将 UpdateLayout
放入函数中,但它没有用。这里的目标是让宽度不断更新,这样我就可以检查视口的边缘是否发生了变化。
通过结合 ViewportWidth
和 HorizontalOffset
解决了我的问题。添加它们,然后将 pt.X 与它进行比较,我得到了视口和溢出区域之间的确切区域,让我可以滚动。