我有这个代码:
if (MyImage.Source == "ms-appx:///Assets/myimage.png")
{
//do something
}
但我收到此错误:
Cannot implicitly convert type 'string' to 'Windows.UI.Xaml.Media.ImageSource'
那么我如何将图像源转换为字符串以便我可以比较它们?我尝试过
ToString()
但似乎不起作用。
请像下面这样使用。
Dim Cnvr As New ImageSourceConverter
Dim SrcImgUrl As String = Cnvr.ConvertToInvariantString(CurrentImage.Source)
If SrcImgUrl.Trim.Length > 0 AndAlso StringCompare(SrcImgUrl, imgUri.Url.ToString,StringComparer.Text)=0 then
...
End If
图像的
Source
属性是 ImageSource
类型,而不是字符串。
的文档:
代表绘制图像的图像源文件的对象。通常,您可以使用 BitmapImage 对象进行设置,该对象是使用描述有效图像源文件路径的 URI 构造的。或者,您可以使用流(可能是来自存储文件的流)初始化 BitmapSource。
[更新:] 因此,您需要做两件事: 1. 判断图像源类型 2. 如果是
BitmapImage
,请使用预期的 URI 检查位图的 UriSource
:
var imgUri = new Uri("ms:app:///Assets/SplashScreen.scale-100.png");
img.Source = new BitmapImage(imgUri);
if (img.Source.GetType() == typeof(BitmapImage)
&& (img.Source as BitmapImage).UriSource.Equals(imgUri))
{
// Do something useful here!
}
HTH.