我使用自定义面板作为ItemsConnel的ItemsPanel,其中包含一个提供滚动查看器的自定义模板。 (参见下面的Xaml。)只要我的面板没有实现IScrollInfo,滚动就可以在这个场景中工作。
我实现了IScrollInfo并在度量覆盖中更新了我的视口和范围大小。滚动条显示正确的相对大小,如果我直接调用IScrollInfo方法,滚动按预期工作。但是,拖动和轻弹手势不再滚动内容。在每个IScrollInfo方法的输入上放置一个断点,表明拖动和选择不会调用接口。删除IScrollInfo接口声明将恢复拖动和轻拂行为的滚动。
是否有一种简单的方法可以使用实现IScrollInfo的面板将轻弹和平移手势恢复为ItemControl?
答案 0 :(得分:2)
我从MSFT论坛版主Eric Sink收到的一个不幸的答案。
我相信发生的事情是,当你继承自己的时候 IScrollInfo,您的面板接管所有滚动功能但是 我们使用内部接口,如马丁提到的那样,来控制 轻弹动画。由于您的对象不从此继承 接口底层代码将绕过此功能。
我认为您仍然可以覆盖OnManipulation * 事件和设置你自己的故事板动画。
听起来好像你想做IScrollInfo,你可以自己动手操作。