与标题一样,当代码在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);
但是仍然没有成功。
答案 0 :(得分:1)
我唯一的猜测就是它加载图像的速度太快,以至于您注册事件处理程序的速度太快。 首先尝试创建BitmapImage实例,然后设置uri