在桌面应用程序中,当我们将列表滚动到顶部时,通常我们无法再滚动。但是在手机中,我们将列表拖到顶部并继续拖动,将显示一些空白区域。如下例所示。
当用户滚动列表正常时,我可以订阅ViewChanged事件以知道列表正在滚动。但是在列表滚动到顶部并继续滚动之后,scrollviewer的垂直偏移量已经为0并且不会更改,并且不会触发ViewChanged事件。
我的问题是有没有办法知道列表被拖到顶部并继续拖动?
我的目标平台是Windows Phone 8.1和我的示例代码:
<Grid>
<Frame >
<Grid>
<ScrollViewer x:Name="TopViewer">
<StackPanel >
<Grid Background="Blue" Height="10"/>
<local:CustomListView x:Name="List"
Background="LightBlue">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock FontSize="15" Foreground="Black" Text="{Binding}"/>
</DataTemplate>
</ListView.ItemTemplate>
</local:CustomListView>
</StackPanel>
</ScrollViewer>
</Grid>
</Frame>
</Grid>
xaml.cs
List<string> l = new List<string>();
Random r = new Random();
for (int i = 0; i < 30; i++)
{
l.Add(r.Next().ToString());
}
List.ItemsSource = l;
答案 0 :(得分:0)
这是按照Windows Phone(以及Windows 8)设计的。它是UI的一个设计元素,因此用户可以理解您实际上处于最顶层,并且没有更多内容可供查看。所以这实际上是在框架中实现的,你无法改变它。这对您的代码没有任何问题。