您的位置:首页 > 其它

SilverLight中图片不能重新加载的处理方法

2010-08-06 10:00 232 查看
很多情况下,我们希望能够动态地对图片进行控制,如加载、卸载、拉伸等。

当我们在打开窗口的时候,会先将一张张的图片加载好,然后通过事件来再一步对图片控件进行控制。

我早阵子一直没能在事件中将之替换成功,也没有找到具体原因,将此问题搁置了一段时间,今天由于在整理代码时,恍然发现一个我们平时都忽略了的错误,在此指出一下,防止大家犯同样的错误。

之前我是这样写的

HRESULT MainPage::BindEventHandlers()

{

HRESULT retcode=S_OK;

MainPage mainpage;

//绑定事件

if(FAILED(retcode=CreateDelegate(&mainpage,&MainPage::OnGesture,&m_pgesturedelegate)))

return retcode;

if (FAILED(retcode=LayoutRoot->AddGestureEventHandler(m_pgesturedelegate)))

return retcode;

return retcode;

}

红色标记处为错误处

后来改为如下,就正确了

HRESULT MainPage::BindEventHandlers()

{

HRESULT retcode=S_OK;

//绑定事件

if(FAILED(retcode=CreateDelegate(this,&MainPage::OnGesture,&m_pgesturedelegate)))

return retcode;

if (FAILED(retcode=LayoutRoot->AddGestureEventHandler(m_pgesturedelegate)))

return retcode;

return retcode;

}

分析主要原因为第二次在事件中处理图片控件时,已经是无效指针了,这样就导致了图片没能替换成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: