我正在尝试将我的XNA游戏嵌入到我的WPF应用程序中。
为此,我获取XNA游戏的屏幕像素,然后将其复制到WriteableBitmap上,这样:
em_renderTarget2D.GetData(em_bytes);
WriteableBitmap.Lock();
System.Runtime.InteropServices.Marshal.Copy(em_bytes, 0, WriteableBitmap.BackBuffer, em_bytes.Length);
WriteableBitmap.AddDirtyRect(new System.Windows.Int32Rect(0, 0, em_sizeViewport.X, em_sizeViewport.Y));
WriteableBitmap.Unlock();
然后我在我的WPF应用程序上获取位图并显示它。
问题是,我希望能够在游戏运行时调整位图大小(例如,当客户端调整应用程序大小时)。
所以我重新定义了m_bytes,rendertarget,......然后我创建了一个新的writeablebitmap:
WriteableBitmap = new WriteableBitmap(em_sizeViewport.X, em_sizeViewport.Y, 96, 96, PixelFormats.Bgr565, null);
问题是,当我调整应用程序大小时,图像变得全黑...... 问题可能来自哪里? 即使新宽度和新高度与之前相同,图像也是黑色。
答案 0 :(得分:1)
查看图书馆http://writeablebitmapex.codeplex.com/
var resized = writeableBmp.Resize(200, 300, WriteableBitmapExtensions.Interpolation.Bilinear);