0

我将自定义面板用作 ItemsControl 中的 ItemsPanel,并使用提供滚动查看器的自定义模板。(请参阅下面的 Xaml。)只要我的面板没有实现 IScrollInfo,滚动就可以在这个场景中工作。

我实现了 IScrollInfo 并在度量覆盖中更新了我的视口和范围大小。滚动条显示正确的相对大小,如果我直接调用 IScrollInfo 方法,滚动将按预期工作。但是,拖动和轻拂手势不再滚动内容。在每个 IScrollInfo 方法的输入上放置一个断点表明拖动和拾取没有调用接口。删除 IScrollInfo 接口声明可恢复拖动和轻拂行为的滚动。

有没有一种简单的方法可以使用实现 IScrollInfo 的面板将轻弹和平移手势恢复到 ItemControls?

4

1 回答 1

2

我从 MSFT 论坛版主 Eric Sink 那里收到了一个不幸的回答。

我相信正在发生的事情是,当您从 IScrollInfo 继承时,您的面板会接管所有滚动功能,但我们使用内部接口,正如马丁所提到的,来控制轻弹动画。由于您的对象不继承此接口,因此底层代码将绕过此功能。

我认为您仍然应该能够覆盖 OnManipulation* 事件并设置您自己的情节提要动画。

听起来如果你想做 IScrollInfo,你自己来操作。

于 2010-08-10T04:32:43.997 回答