You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断Xamarin.Forms.Image的Source是否未包含URI或Stream?

检查Xamarin.Forms.Image是否未包含URI或Stream源

要判断一个Image控件的Source是否既不是URI来源也不是流来源,我们可以利用Xamarin.Forms中ImageSource的类型特性来实现——因为ImageSource是抽象类,它的具体实现包括UriImageSource(对应URI源)、StreamImageSource(对应流源)、FileImageSource等,我们只需要判断Source的类型或者是否为null即可。

具体实现方法

你可以写一个工具方法来做这个检查,逻辑很清晰:

  1. 先判断Image.Source是否为null——如果是,说明完全没有设置任何源;
  2. 如果Source不为null,再判断它既不是UriImageSource也不是StreamImageSource类型。

代码示例如下:

public bool HasNoUriOrStreamSource(Image image)
{
    // 情况1:完全没有设置源
    if (image.Source == null)
        return true;
    
    // 情况2:源存在,但既不是URI也不是Stream类型
    return !(image.Source is UriImageSource) && !(image.Source is StreamImageSource);
}

对应你的场景测试

把你的三个Image传入这个方法:

  • 第一个URI源的图像:Source是UriImageSource类型,方法返回false;
  • 第二个图库流源的图像:Source是StreamImageSource类型,方法返回false;
  • 第三个无任何源的图像:Source为null,方法返回true。

额外说明

如果你的场景中还需要排除其他类型的ImageSource(比如本地文件源FileImageSource),这个方法也能直接覆盖——只要它不是URI或Stream类型,都会返回true,完全符合你“检查是否未包含URI或Stream”的需求。

内容的提问来源于stack exchange,提问作者Nanji Mange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:40:22