我有一个非常标准的UWP xaml windows 10应用程序,其中包含主页上的几个图像,约50个我会说。
我使用Image xaml标签以正常方式定义图像,并指定图像的source属性以引用我的应用程序Assets文件夹中的项目,
<Image Source="Assets/Image1.png"/>
我会说75%-80%的时间我的应用程序发布正常,所有图像都在正确的位置和正确的大小等可见...但有时我启动应用程序和一些图像是不可见。通常这是在1-3张图像之间。只要我调整应用程序的大小或触发更改图像源的事件,就会显示丢失的图像。
图像上还有一个Tapped事件处理程序。如果单击图像所在的位置时图像不可见,则会调用tapped处理程序。
我有点想知道可能导致这个问题的原因。这几乎就像图像没有及时加载,或者图像加载后GUI没有收到页面刷新事件。就像我说调整应用程序修复了问题。
任何建议都将不胜感激。提前感谢您的帮助。
答案 0 :(得分:0)
当系统内存不足时,通常会发生此问题,因此它不会加载某些图像以降低负载。加载50张图片,特别是如果它们很大,可能会导致这样的问题。
将图片CacheMode
设置为"BitmapCache"
可能有所帮助(请参阅documentation - 对于WPF,但比UWP文档更详细)。否则,我建议确保您的图像不大于必要的图像,因为这会给机器带来不必要的压力。
此外,您可以使用DecodePixelWidth
和DecodePixelHeight
属性指定图像的加载大小。当您在缩略图区域中显示大型照片时,此功能非常有用。设置DecodePixel
属性将优化JPEG和PNG图像的加载过程,这样就不必将整张照片从磁盘加载到内存中(参见documentation)。
根据@ JohnnyWestlake的建议,您可能需要查看documentation以获取有关图像优化的更多提示。有许多有用的提示可以帮助保持图像的内存占用尽可能低。