我想捕捉屏幕,但没有当前表格,我试图最小化 - >捕获 - >最大化,但我正在寻找一个更好的解决方案,如果存在。这是我的代码::
int w = this.Width;
int h = this.Height;
Size sz = this.Size;
Point loc = this.Location;
this.WindowState = FormWindowState.Minimized;
System.Threading.Thread.Sleep(500);
using (Bitmap b = new Bitmap(w, h))
{
using (Graphics g = Graphics.FromImage(b))
{
g.CopyFromScreen(loc, new Point(0, 0), sz);
}
b.Save(Environment.CurrentDirectory + "\\slides\\screen.jpeg");
this.BackgroundImage = System.Drawing.Image.FromFile(@"slides\screen.jpeg");
}
this.WindowState = FormWindowState.Maximized;
我问是否有直接的方法将捕获的图像作为表单背景,而不保存它。
答案 0 :(得分:4)
答案 1 :(得分:1)
尝试,虽然我确实注意到你和我的两个都被形式边界略微抵消了。
int w = this.Width;
int h = this.Height;
Size sz = this.Size;
Point loc = this.Location;
Hide();
System.Threading.Thread.Sleep(500);
using (Image b = new Bitmap(w, h))
{ using (Graphics g = Graphics.FromImage(b))
{
g.CopyFromScreen(loc, new Point(0, 0), sz); }
Image x = new Bitmap(b);
this.BackgroundImage = x;
}
Show();