在Windows Phone项目中使用akavache的LoadImageFromUrl的正确方法是什么?

本文关键字:LoadImageFromUrl 方法 是什么 akavache Phone Windows 项目 | 更新日期: 2023-09-27 18:08:56

目标是从url异步获取图像,然后将其设置为BitmapSource viewmodel属性(在视图中绑定)。

我可以用LoadImageFromUrl得到Splat.IBitmap,但我不知道如何将其连接到BitmapSource。事实上,我根本不确定我是否正确地使用了这个方法。

这是我得到的:

using Akavache;
using System.Reactive.Linq;
// ...others...
var myViewModel = ...;
var url = @"http://upload.wikimedia.org/wikipedia/meta/0/08/Wikipedia-logo-v2_1x.png";
BlobCache.LocalMachine.LoadImageFromUrl(url, false, 200, 183)
    .ObserveOnDispatcher()
    // up to here, it's fine
    // what goes below is the question
    // I manually instantiate an Action object so as to explicitly pick that override,
    // but LoadImageFromUrl returns an IObservable<Splat.IBitmap>, so I'm not picking the wrong <T> here
    .Subscribe(new Action<Splat.IBitmap>(pic => {
        // haha, nope: myViewModel.someBitmapSource = (BitmapSource)pic);
    }), ex => Debug.WriteLine(ex));

我想到的其他事情:

  • 检查文档:似乎不存在,我可以找到
  • 谷歌周围:很少的选择,没有直接的帮助
  • 看看这个方法是如何在Akavanche测试中使用的:它似乎没有在任何地方被调用
  • 由于返回Splat -namespace对象,请检查Splat tests/docs: Closer。splat自述文件说:

.

// ToNative always converts an IBitmap into the type that the platform
// uses, such as UIBitmap on iOS or BitmapSource in WPF
ImageView.Source = ViewModel.ProfileImage.ToNative();

很好,只是ToNative()在这种情况下没有意义,因为它不是Splat.IBitmap接口的成员。

现在我没主意了

在Windows Phone项目中使用akavache的LoadImageFromUrl的正确方法是什么?

ToNativeIBitmap接口的Splat扩展。在此上下文中添加对Splat和using的依赖将使该方法可用。

我不确定这是不是正确的方法。

相关文章:
  • 没有找到相关文章