(Windows 8.1)在我的应用程序中,我有一个带有列表框的MainPage。当导航回同一页时,NavigationCacheMode设置为保留状态。
public MainPage()
{
this.InitializeComponent();
this.DataContext = this;
// cache page
this.NavigationCacheMode = NavigationCacheMode.Required;
}
所以,当我回到另一个页面,回到我的MainPage时,一切都和我离开的一样。Listbox也处于当前位置。但每当我碰它的时候,它就会在滚动之前跳到顶端.
我怎样才能使它恢复滚动,然后才能到达顶端呢?
编辑:解决
似乎Listbox在WP8.1中被窃听了,使用ListView代替!
发布于 2014-09-01 22:40:36
我也遇到了同样的问题,并发现主要是被选中的ItemsPanelTemplate导致了Bug。
当使用ListView时,标准的ItemsPanelTemplate是ItemsStackPanel,它工作得很好。如果将其更改为VirtualizingStackPanel (ListBox的标准),则会出现错误。但是,只有在Windows上,它才能像预期的那样工作。
所以我假设,当您喜欢使用ListBox而不是ListView时,您必须使用ItemStackPanel作为ItemsPanelTemplate来通过NavigationCacheMode保持滚动位置。
https://stackoverflow.com/questions/23636132
复制相似问题