7

BackgroundAgent如标题所示,当代码在我的主应用程序中执行时它工作正常,当代码执行时不会触发事件。

这是我的代码:

var background = new BitmapImage(new Uri(uri), UriKind.Absolute)){ CreateOptions = BitmapCreateOptions.None };
background.ImageFailed += (s, e) =>
{
    Debug.WriteLine(e);
    // Nothing happens here so I guess that there's no error in the image loading
};
background.ImageOpened += (s, e) =>
{
    Debug.WriteLine("ImageOpened");
    // This line is never printed no the event is never thrown
};

一切都在一个Dispatcher线程中运行,我正在尝试加载远程图像(我无法缓存它,因为它是由php页面生成的动态图像)。

有什么提示吗?

编辑:

这是基于@l3arnon 建议的代码:

var backgroundImage = new BitmapImage { CreateOptions = BitmapCreateOptions.None };
backgroundImage.ImageOpened += (s, e) =>
{
                Debug.WriteLine("ImageOpened");
};
backgroundImage.UriSource = new Uri(uri);

虽然仍然没有成功。

4

1 回答 1

1

我唯一的猜测是它加载图像的速度如此之快,以至于您注册事件处理程序的速度太快了。尝试首先创建 BitmapImage 实例,然后设置一个 uri

于 2013-12-29T15:15:40.040 回答