使用OpenNetCF进行屏幕截图 - 缺少页面标题/标题

时间:2014-09-01 14:54:18

标签: windows-mobile windows-mobile-6.5 opennetcf

我正在测试Windows Mobile上的几种屏幕捕获功能实现。

使用SO,我使用OpenNetCF.Drawing库(http://blog.opennetcf.com/2009/03/11/screen-capture-in-the-compact-framework/)找到@ctacke的以下方法:

// create a bitmap and graphics objects for the capture
Drawing.Bitmap destinationBmp = new Drawing.Bitmap(Forms.Screen.PrimaryScreen.Bounds.Width, Forms.Screen.PrimaryScreen.Bounds.Height);
Drawing.Graphics g = Drawing.Graphics.FromImage(destinationBmp);
GraphicsEx gx = GraphicsEx.FromGraphics(g);

// capture the current screen
gx.CopyFromScreen(0, 0, 0, 0, Forms.Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);

// save the file
destinationBmp.Save(filename, System.Drawing.Imaging.ImageFormat.Png);

// clean house
gx.Dispose();
g.Dispose();
destinationBmp.Dispose();

我尝试在Windows Mobile 6.5 VGA模拟器上的一个简单应用程序上测试此方法并获得无人值守的结果:

保存的图片尺寸正确(480x640),但内容不是我的屏幕的完整副本:标题部分缺失,底部是"黑色填充" (丢失的像素线为黑色)。

尝试使用Windows Mobile 6模拟器,遇到了同样的问题。如何获得所有屏幕?

1 个答案:

答案 0 :(得分:2)

我设法通过使用CopyFromScreen的属性修改PrimaryScreen.WorkingArea调用中的X和Y字段来找到解决方案:

gx.CopyFromScreen(-Forms.Screen.PrimaryScreen.WorkingArea.X, -Forms.Screen.PrimaryScreen.WorkingArea.Y, 0, 0, Forms.Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);

以这种方式编辑这条线,我得到了所有的屏幕。