BitmapImage的ImageOpened事件未在后台代理中触发

时间:2013-12-29 13:55:01

标签: c# events windows-phone-8 background-agents

与标题一样,当代码在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
};

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

任何提示?

编辑:

以下是基于@ l3arnon建议的代码:

var backgroundImage = new BitmapImage { CreateOptions = BitmapCreateOptions.None };
backgroundImage.ImageOpened += (s, e) =>
{
                Debug.WriteLine("ImageOpened");
};
backgroundImage.UriSource = new Uri(uri);
但是仍然没有成功。

1 个答案:

答案 0 :(得分:1)

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