0

我的 Windows Phone XAML 页面中有一些图像,我正在按照这种方式从代码隐藏动态设置它们的源代码。

 img1.Source = (ImageSource)new ImageSourceConverter().ConvertFromString("/Images/MAP/" + Path + ".png");

它在页面加载和图像加载完美时工作正常,但根据我的应用程序逻辑,我显示了一个消息框,它是基于 XNA 的自定义消息框,带有两个按钮。一旦用户单击“确定”,我必须再次动态加载图像,并且我正在调用相同的上述函数,但当时它给了我一个异常"Invalid Cross Thread Exception"可能是由于后台线程上的图像源设置而不是 UI 线程上的,所以我尝试Dispatcher了像这样

 this.Dispatcher.BeginInvoke(new System.Action(delegate()
                {
                    img1.Source = (ImageSource)new ImageSourceConverter().ConvertFromString("/Images/MAP/" + Path + ".png");
                }));

有了这个调度器,没有异常,但UI没有刷新

谁能告诉我为什么会这样?我再次尝试在同一个消息框 OK 按钮上导航我得到相同的“ Invalid Cross Thread”异常

4

1 回答 1

0

尝试将事件处理程序添加到 img1.ImageFailed,如果图像无法加载,它将静默执行,除非您正在侦听该事件。

于 2013-05-30T15:49:16.817 回答