xamarin 如何获取字符串形式的Image.source

ezykj2lf  于 2022-12-28  发布在  其他
关注(0)|答案(3)|浏览(135)

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());

......还有一些不连贯的组合。
有谁能告诉我如何从图像中获取源代码(使用字符串)?

h43kikqp

h43kikqp1#

Xamarin.Forms****图像.源属性的类型是图像源
Xamarin.Forms中的ImageSource有几个继承此类的类,例如:-

  • 文件图像源
  • 流式图像源
  • Uri图像源

您可以类型检查*Image.Source以查看Image.Source中使用的是什么实现,然后对其进行强制转换**,并访问转换后的对象的属性。
例如(假设图像源文件图像源),您将得到如下内容:-

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;
}
sxpgvts3

sxpgvts32#

看起来Xamarin.Forms.Image有一个Xamarin.Forms.ImageSource类型的Source属性,它是从string隐式转换而来的。这就是为什么你可以执行Image.Source = "someImage.jpg",但它没有返回的方法,可能是因为它只使用字符串来查找文件并加载它。如果你需要加载的文件的名称,你必须自己跟踪它。

q7solyqu

q7solyqu3#

private async void myImage_Tapped(object sender, EventArgs e)
    {
        try
        {
            var url = ((sender as Image).Source as UriImageSource).Uri.AbsoluteUri;
            await Navigation.PushPopupAsync(new WebView_Page(url));
        }
        catch (Exception ex)
        {
            //await DisplayAlert("!", ex.Message, "OK");
        }
    }

或者把它当作

var url = (myImage.Source as UriImageSource).Uri.AbsoluteUri;

相关问题