有没有办法获得listview Y滚动位置?我的目标是在用户滚动列表视图时更改图像的TranslationY属性。我在使用scrollview之前已经实现了这个目标:
outerScrollView.Scrolled += (sender, e) => {
var imageHeight = 800;
var scrollRegion = layeringGrid.Height - outerScrollView.Height;
var parallexRegion = imageHeight - outerScrollView.Height;
var factor = outerScrollView.ScrollY - parallexRegion * (outerScrollView.ScrollY / scrollRegion);
imagesCarousel.TranslationY = factor;
};
但是,listview不包含Scrolled事件。
提前致谢。
答案 0 :(得分:0)
默认情况下,ListView具有滚动功能,不知道为什么ListView不包含Scrolled事件。
但是,一旦默认情况下ListView没有滚动,就必须创建一个滚动视图来覆盖XML中的ListView,如下所示:
<ScrollView x:Name="outerScrollView">
<ListView
x:Name="ItemsListView"
ItemsSource="{Binding Messages}"
HasUnevenRows="True"
/>
</ScrollView>
然后,一旦您进入事件e,则应使用e.ScrollY而不是externalScrollView.ScrollY
在上面的代码中实现它应该是这样的:
outerScrollView.Scrolled += (sender, e) => {
var imageHeight = 800;
var scrollRegion = layeringGrid.Height - e.Height;
var parallexRegion = imageHeight - e.Height;
var factor = e.ScrollY - parallexRegion * (e.ScrollY / scrollRegion);
imagesCarousel.TranslationY = factor;
};
那就是您的滚动垂直位置!
如果这个答案对您有用,请别忘了接受并投票!!谢谢:)