将图像源转换为字符串

问题描述 投票:0回答:2

我有这个代码:

if (MyImage.Source == "ms-appx:///Assets/myimage.png")
{
   //do something
}

但我收到此错误:

Cannot implicitly convert type 'string' to 'Windows.UI.Xaml.Media.ImageSource'

那么我如何将图像源转换为字符串以便我可以比较它们?我尝试过

ToString()
但似乎不起作用。

c# xaml windows-runtime windows-store-apps imagesource
2个回答
0
投票

请像下面这样使用。

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

-1
投票

图像的

Source
属性是
ImageSource
类型,而不是字符串。

根据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.

© www.soinside.com 2019 - 2024. All rights reserved.