首页 > 解决方案 > UWP Toast (AdaptiveImage) 不显示扩展名为 jpg 格式的图像

问题描述

我需要在 toast 通知中显示 gif、FontAwesome 图标等图像,但这些系统定义的方法不支持它。还有其他方法吗?

  1. 我收到的 URL 是这个 - https://media.tenor.com/images/036d52936bbc66e8afca81259478b1c5/tenor.gif 以下是代码。我能够显示扩展名为 jpg/png 的所有其他图像。

    ToastContent toastContent = new ToastContent() { Duration = duration, Visual = new ToastVisual() { BindingGeneric = new ToastBindingGeneric() { Children = { new AdaptiveText() { Text = title, HintMaxLines = 1 },

                                new AdaptiveImage()
                                {
                                    Source = imageUrl
                                },
    
                            },
                            AppLogoOverride = new ToastGenericAppLogo()
                            {
                                Source = feedObject.sender_image,
                                HintCrop = ToastGenericAppLogoCrop.Default
                            }
                        }
                    },
                    Launch = Constants.NOTIFICATIONLAUNCHNOTIIFCATION + "=" + feedObject.mlink
                }; 
    
  2. 我正在以这种格式获得 FontAwesome 的图标。我可以使用 XML 阅读器对其进行解析,但是如何将这些图标转换为 png?

"far fa-address-card", "background-color"=>"rgb(220, 224, 231)", "color"=>"rgb(0, 0, 0)"}\" />

标签: c#uwptoast

解决方案


我测试了你给的图片,在本地的时候可以正常显示。根据文件内容:

如果图像超过文件大小、下载失败或超时,图像将被丢弃并显示其余通知。

您提供的文件大小为 2.82MB。16299及以后的版本可以正常显示,但是在之前的版本中,会因为超出限制加载失败。16299 之后的图像大小限制为 3MB,之前为 200KB。

如果你的版本符合要求,图片无法显示的原因应该是网络问题。.jpg图片比图片小得多.gif,易于加载。由于.gif图片较大且网速较慢,图片可能无法在指定时间内加载,因此将停止加载图片。

如果您经常要使用此图像,可以将其保存在本地并通过本地链接加载,例如ms-appxdata:///local/myimage.gif.


在 UWP 通知中,虽然使用了 XML,但它没有 HTML 那样的类,也没有对应的 CSS。您的 FontAwesome 参考代码不适用于 Toast 通知。

您不必将代码转换为 png 图像。您可以在 FontAwesome 官网找到相应的图标并下载 Svg 图片。如果你的系统版本在16299以上,可以直接使用svg图片,如果不是,或者想对svg图片做其他处理,可以使用在线工具进行转换。


推荐阅读