如何将Image.Source作为字符串

时间:2014-10-30 17:00:03

标签: c# image xamarin xamarin.forms

It's easy to set a source for an image in Xamarin

using Xamarin.Forms;
Image image = new Image;
image.Source = "someImage.jpg";

但是我不能做相反的操作 例如:给定已设置其源的图像,打印源。

Console.WriteLine ("Print Image source ==> {0}",image.Source);
Console.WriteLine ("Print Image source ==> {0}",image.Source.ToString());

... 还有一些不连贯的组合。

有人能告诉我如何从图像中获取源(带字符串)。

2 个答案:

答案 0 :(得分:14)

Xamarin.Forms Image.Source 属性的类型为 ImageSource

Xamarin.Forms 中的

ImageSource 有一些继承此类的类,例如: -

  • FileImageSource
  • StreamImageSource
  • UriImageSource

您可以键入 Image.Source 以查看 Image.Source 中正在使用的实现,然后强制转换它,并访问已投放对象的属性

例如(假设 ImageSource FileImageSource ),您将拥有类似的内容: -

Xamarin.Forms.Image objImage;
..
..

..
if (objImage.Source is Xamarin.Forms.FileImageSource)
{
    Xamarin.Forms.FileImageSource objFileImageSource = (Xamarin.Forms.FileImageSource)objImage.Source;
    //
    // Access the file that was specified:-
    string strFileName = objFileImageSource.File;
}

答案 1 :(得分:2)

看起来Xamarin.Forms.Image的{​​{1}}属性类型为Source,其Xamarin.Forms.ImageSource隐式广播。这就是为什么你可以做string,但它没有办法回头,可能是因为它只使用字符串来查找文件并加载它。如果您需要加载文件的名称,则必须自行跟踪。