在XNA Windowsphone中重新加载/重置纹理2D

在XNA Windowsphone中重新加载/重置纹理2D,xna,windows-phone,reload,reset,texture2d,Xna,Windows Phone,Reload,Reset,Texture2d,我正在使用Texture2D.Setdata操作Texture2D并更改其颜色 但我想在一次之后再次重置纹理2D,目前我的内存中有全部纹理数据,但现在我的应用程序中有OutOfMemoryException 我试过这个: Color[] bla = new Color[thetexture.Width * thetexture.Height]; this.Content.Load<Texture2D>(".\\textures\\mytexture").GetData(bla); t

我正在使用Texture2D.Setdata操作Texture2D并更改其颜色

但我想在一次之后再次重置纹理2D,目前我的内存中有全部纹理数据,但现在我的应用程序中有OutOfMemoryException

我试过这个:

Color[] bla = new Color[thetexture.Width * thetexture.Height];
this.Content.Load<Texture2D>(".\\textures\\mytexture").GetData(bla);
thetexture.SetData(bla);
Color[]bla=新颜色[thetexture.Width*thetexture.Height];
this.Content.Load(“.\\textures\\mytexture”).GetData(bla);
文本设置数据(bla);
但它不会改变任何东西,纹理只是保持彩色


如何重置纹理,使其看起来像刚加载的纹理,但有一个小内存?

ContentManager
缓存对象。您对
Load
的调用返回的对象可能与
文本
(您已经修改的对象)相同

您需要使用原始数据加载单独的纹理实例。为此,您需要一个单独的
ContentManager
。可能是一个从未缓存过对象的对象

或者,创建一个
新的Texture2D
对象,并在修改之前将原始数据复制到该对象中,保持原始数据不变