如何改变Writeablebitmap的大小?

时间:2014-03-14 18:36:43

标签: c# wpf xna

我正在尝试将我的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);

问题是,当我调整应用程序大小时,图像变得全黑...... 问题可能来自哪里? 即使新宽度和新高度与之前相同,图像也是黑色。

1 个答案:

答案 0 :(得分:1)

查看图书馆http://writeablebitmapex.codeplex.com/

var resized = writeableBmp.Resize(200, 300, WriteableBitmapExtensions.Interpolation.Bilinear);