Windows 8 单游戏Windows 8的屏幕截图问题

Windows 8 单游戏Windows 8的屏幕截图问题,windows-8,xna,windows-runtime,monogame,winrt-async,Windows 8,Xna,Windows Runtime,Monogame,Winrt Async,我真的很难在MonoGame中保存截图。每次我保存屏幕截图时,结果都是一团糟,有点像如果你不订阅高级频道,它们过去的样子。就像搞乱VHS录像带上的追踪一样。我现在知道发生了什么事。我创建了一个全新的项目,只是想看看这是我的项目还是单游戏。它与新项目配合得很好。我知道没有人知道我到底做错了什么,但有人能告诉我为什么会发生这样的事情吗?我应该看看我的相机课吗?或者文件的保存有点混乱?我不知所措,今天我有一场游戏要交给微软,我显然已经错过了最后期限。以下是我的保存屏幕截图方法: asyn

我真的很难在MonoGame中保存截图。每次我保存屏幕截图时,结果都是一团糟,有点像如果你不订阅高级频道,它们过去的样子。就像搞乱VHS录像带上的追踪一样。我现在知道发生了什么事。我创建了一个全新的项目,只是想看看这是我的项目还是单游戏。它与新项目配合得很好。我知道没有人知道我到底做错了什么,但有人能告诉我为什么会发生这样的事情吗?我应该看看我的相机课吗?或者文件的保存有点混乱?我不知所措,今天我有一场游戏要交给微软,我显然已经错过了最后期限。以下是我的保存屏幕截图方法:

       async void ScreenShot()
       {
           RenderTarget2D renderTarget = new RenderTarget2D(
              _graphics.GraphicsDevice,
              _graphics.GraphicsDevice.PresentationParameters.BackBufferWidth,
              _graphics.GraphicsDevice.PresentationParameters.BackBufferHeight);

           _graphics.GraphicsDevice.SetRenderTarget(renderTarget);

           Draw(new GameTime());

           _graphics.GraphicsDevice.SetRenderTarget(null);

           StorageFolder storageFolder = ApplicationData.Current.LocalFolder;
           Stream stream = null;
           if (storageFolder != null) stream = await storageFolder.OpenStreamForWriteAsync("testing.jpg", CreationCollisionOption.ReplaceExisting);
           if (stream != null)
           {
              renderTarget.SaveAsJpeg(stream, renderTarget.Width, renderTarget.Height);
           }
           stream.Dispose();
       }

好吧,我把范围缩小了一点。我只是取出函数中将其写入文件的部分,将renderTarget强制转换为Texture2D,然后对其进行渲染,它看起来非常完美。显然,问题在于保存文件。这并不能完全解决我的问题,但它至少给了我一些可以处理的东西。

我发现这是模拟器的问题。由于某些原因,当通过模拟器写入文件时,它会显示出所有的乱码,但是当在实际设备上运行游戏时,它工作得非常好