如何解决寻求不支持错误的ImageSource IRandomAccessStream?

时间:2016-02-24 14:32:17

标签: xamarin.forms

尝试通过 ImageSource 分配加载图片时,我收到以下运行时错误。

  

无法将指定的Stream用作Windows运行时IRandomAccessStream,因为此Stream不支持搜索。

具体来说,我将ImageSource对象从一个页面传递到另一个页面。 因此,我很惊讶我收到了这个错误。

我甚至尝试从ImageSource对象中提取流对象。 但是,这似乎不受支持。

任何人都可以就如何解决此问题提供指导吗?

1 个答案:

答案 0 :(得分:0)

我面临同样的问题, 请按照以下步骤操作。

1.在你的xaml页面中添加这样一个img标签

Image x:Name =“productImage”Source =“{Binding SelectedSalesItem.Source}”
2.在任何网格调用ItemSelected =“OnSalesItemSelected”事件中称为波纹管方法。

Public async void OnSalesItemSelected(object sender,EventArgs args){

        try
        {

            if (SaleVm.SelectedSalesItem != null)
            {
                OnImages();//Call point no 3 method "OnImages"
            }
        }
        catch (Exception ex)
        {

            throw ex;
        }
    }

3.在xaml.cs页面中创建一个方法。

async void OnImages(){

        try
        {

            if (SaleVm.SelectedSalesItem != null)
            {

                IFolder rootFolder = FileSystem.Current.LocalStorage;
                IFolder imageFolder = await rootFolder.GetFolderAsync("ItemsImg");
                IFile imageFile = await imageFolder.GetFileAsync(SaleVm.SelectedSalesItem.ItemCode + ".png");
                var stream = await imageFile.OpenAsync(FileAccess.Read);
                productImage.Source = ImageSource.FromStream(() => stream);
            }
        }
        catch (Exception ex)
        {

            throw ex;
        }
    }

4。从其他类(如ViewModel)调用“OnImages()”方法。 并在运行时更改图像。