如何获得Image.Source作为字符串
It's easy to set a source for an image in Xamarin:如何获得Image.Source作为字符串
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());
... 和一些更不相关的组合。
任何人都可以告诉我如何从图像中获取源代码(带有字符串)。
的Xamarin.FormsImage.Source属性是类型的ImageSource的。
ImageSource的在Xamarin.Forms有继承这个类等几类: -
- 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;
}
非常感谢,这只是一种魔法。 :) – Loebre 2014-10-31 08:47:08
为我工作,非常感谢你 – 2016-11-29 09:22:35
它看起来像Xamarin.Forms.Image
有Source
Xamarin.Forms.ImageSource
类型的财产,其中有一个隐含投从string
。这就是为什么你可以做Image.Source = "someImage.jpg"
,但它没有办法返回,可能是因为它只使用字符串来查找文件并加载它。如果你需要你加载的文件的名字,你必须自己跟踪它。
什么是'Image',以及以何种方式读取属性不工作?我也看到你用'source'设置它,并用'Source'读取它们 - 它们实际上是分开的属性,还是这是一个错字,在这种情况下,你能显示你实际尝试编译的代码吗? – 2014-10-30 17:03:26
第一个代码段也不起作用。假设你在谈论System.Drawing.Image,那么没有公共的'source'属性。无论如何,BCL公共成员名称永远不会以小写字母开头。 – 2014-10-30 17:03:33
@Asad:注意xamarin标签。 http://iosapi.xamarin.com/?link=T%3aXamarin.Forms.Image – 2014-10-30 17:06:03