0

我正在考虑在我的应用程序中使用VirtualSurfaceImageSource,并且我已经实现了类似于Direct2D 杂志应用示例的东西,但是当虚拟表面比显示区域大几倍时,我遇到了一个问题。

基本上,我有一个水平滚动ScrollViewer,其中包含一个Image. 图像的来源是宽的VirtualSurfaceImageSource(至少 ~10000 x 500 像素)。的宽度ScrollViewer为 1280 像素。

当我通过触摸平移滚动滚动查看器时,图像有时会闪烁 - 图像的一部分消失,然后重新绘制。这通常发生在惯性滚动停止时。图像在滚动到视图时已经完全绘制,但由于某种原因它被清除并被IVirtualSurfaceUpdatesCallbackNative::UpdatesNeeded()调用。

我上传了一个说明问题的视频。观察滚动停止时会发生什么(在 0:02、0:17 等...)

任何想法为什么会发生这种情况?

我还注意到,如果图像宽度约为 5000 像素或更小,则不会发生闪烁。


如果您想重现此内容,请从Direct2D 杂志应用示例开始,并在 Sample.story 中的<text name="butterfly-body">标签下添加更多文本 - 只需将现有文本复制 10 次左右。尝试以不同的速度双向滚动蝴蝶页面,您应该会看到似乎是相同的问题。

我在MSDN 论坛上问过这个问题,但到目前为止我还没有得到答案。

4

1 回答 1

0

这在 Windows 8 Release Preview 中不再是问题,因此它可能只是 Consumer Preview 中的一个错误。

于 2012-06-01T12:44:57.493 回答