4

我正在尝试创建一个基于翻转视图的 windowsRT 应用程序,其中翻转视图的每个项目(我的应用程序术语中的一个页面)都是VSIS支持的图像。根据 VSIS 的设计,每当任何图像进入可见区域时,都会调用 VSIS 的 updatesneeded 函数并为我绘制位图。

作为增强功能,我想缓存下一页的图像/位图,如果用户单击下一步按钮,将显示该图像/位图。为了实现这一点,我在不同的线程中调用相应 VSIS 的无效函数,希望这会在后台渲染位图(通过调用 UpdatesNeeded),并且当用户单击下一个按钮时,图像已经准备好被显示。

但是,当 VSIS 不在可见区域中时,invalidate 函数似乎不会调用 updatesneeded 回调,因此我的缓存设计失败了。有没有相同的方法/解决方法?我事先知道页面/图像的尺寸,因此获取 vsis 的更新矩形不是问题。此外,如果位图已经渲染,我的 updatesneeded 函数将返回,注意当图像进入可见区域并调用 updatesneeded 时,VSIS 不需要再次重绘整个图像。

4

1 回答 1

0

我找到了解决方案。实际上,我认为UpdatesNeeded即使我的图像不在可见区域中也会调用该函数是错误的。因此,我实现了自己的功能PreCacheImage。调用时,此函数创建ID2D1Bitmap图像并存储它。当UpdatesNeeded函数被调用时(当图像变得可见时),我检查我的位图是否有效,如果是,我只是将它blit到屏幕上。

于 2013-06-06T21:43:08.403 回答