在页面调整大小之前,UWP图像有时不可见

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在页面调整大小之前,UWP图像有时不可见相关的知识,希望对你有一定的参考价值。

我有一个非常标准的UWP xaml windows 10应用程序,其中包含主页上的几个图像,约50个我会说。

我已经使用Image xaml标签以正常方式定义了图像,并指定了图像的source属性以引用我的应用程序Assets文件夹中的项目,

<Image Source="Assets/Image1.png"/>

我会说75%-80%的时间我的应用程序启动正常,所有图像都可以在正确的位置和正确的大小等可见...但有时我启动应用程序,一些图像是不可见的。通常这是在1-3张图像之间。只要我调整应用程序的大小或触发更改图像源的事件,就会显示丢失的图像。

此外,图像上还有一个Tapped事件处理程序。如果单击图像所在的位置时图像不可见,则会调用轻触的处理程序。

我有点想知道可能导致这个问题的原因。这几乎就像图像没有及时加载,或者图像加载后GUI没有收到页面刷新事件。就像我说调整应用程序修复了问题。

任何建议将不胜感激。在此先感谢您的帮助。

答案

当系统内存不足时,通常会发生此问题,因此不会加载某些映像以降低负载。加载50张图片,特别是如果它们很大,可能会导致此类问题。

将图像的CacheMode设置为"BitmapCache"可能会有所帮助(请参阅documentation - 对于WPF,但比UWP文档更详细)。否则,我建议确保您的图像不大于必要的图像,因为这会给机器带来不必要的压力。

此外,您可以使用DecodePixelWidthDecodePixelHeight属性指定图像的加载大小。当您在缩略图区域中显示大型照片时,此功能非常有用。设置DecodePixel属性将优化JPEG和PNG图像的加载过程,这样就不必将整张照片从磁盘加载到内存中(参见documentation)。

更新

根据@ JohnnyWestlake的建议,您可能需要查看documentation以获取有关图像优化的更多提示。有许多有用的提示可以帮助保持图像的内存占用尽可能低。

以上是关于在页面调整大小之前,UWP图像有时不可见的主要内容,如果未能解决你的问题,请参考以下文章

在 UWP 中动态调整阴影大小

使用ScrollViewer调整UWP Canvas中的UI元素大小

如何实时防止图像大小调整(页面加载期间)

如何在 Xamarin.UWP 中调整大小和减小大小(使用压缩质量值)

在 Kotlin 中调整对话框片段的大小

收藏|分享前端开发常用代码片段