WP7滚动时更新UI(芒果)

时间:2011-09-07 15:45:34

标签: silverlight windows-phone-7 windows-phone-7.1

前段时间我写了一个Windows Phone 7跳转列表控件:

http://www.scottlogic.co.uk/blog/colin/2011/01/a-windows-phone-7-jump-list-control/

我收到了很多人要求在跳转列表顶部添加“芒果”风格“粘性”类别标题的请求。我已经在控件的顶部添加了一个类别标题,并且已经计算出如何更新它的位置,以便在列表滚动时滑动到位,但是,芒果给我带来了一些问题......

使用NoDo,我通过在ScrollViewer模板中找到Scrollbar并处理ValueChanged事件来滚动ScrollViewer,从而更新我的UI。这在我的NoDo手机上运行良好。

但是,我有Mango开发人员工具,当我在模拟器中运行相同的代码时,'sticky'类别标题位置会跳转而不是平滑移动。我的猜测是,这在某种程度上与Mango中的滚动改进有关,是否通过渲染/合成器线程更新UI而不会触发ValueChanged事件?

我也尝试过通过CompositionTarget.Rendering更新UI,这在Mango中也是如此。此外,由于WP7控件未实现IDisposable,因此很难确定何时删除对此事件的订阅。

那么,有没有人知道如何解决这个问题?如何顺利更新我的UI以响应Mango WP7设备上的垂直滚动?

1 个答案:

答案 0 :(得分:1)

Silverlight for Windows Phone Performance team blog所述,您可以通过设置ScrollViewer.ManipulationMode="Control"附加属性来选择停止滚动的芒果性能改进。我希望这可以解决你一直存在的问题。