1

如果它比您的显示器大,是否有任何方法可以屏幕抓取 Windows 窗体控件?

例如,我的 winform 是 3000px x 3000px

显示器是 1080p

this.Height = 3000;
this.Width = 3000;                               

Graphics g = this.CreateGraphics();
//new bitmap object to save the image        
Bitmap bmp = new Bitmap(this.Width, this.Height + 1000);
//Drawing control to the bitmap        
this.DrawToBitmap(bmp, new Rectangle(0, 0, this.Width, this.Height + 1000));
bmp.Save(@"C:\Users\Watson\Documents\Visual Studio 2013\WebSites\WebSite3\Images\button.jpg", ImageFormat.Jpeg);
bmp.Dispose();

屏幕截图总是受限于我的显示器尺寸。是否有解决方法来呈现您的应用程序,即使它不在您的屏幕上?

4

1 回答 1

2

您需要将控件设置为取消停靠。

Panel1.Dock = DockStyle.None // If Panel Dockstyle is in Fill mode.      
Panel1.Width = 5000  // Original Size without scrollbar     
Panel1.Height = 5000 // Original Size without scrollbar      
Dim bmp As New Bitmap(Me.Panel1.Width, Me.Panel1.Height)     
Me.Panel1.DrawToBitmap(bmp, New Rectangle(0, 0, Me.Panel1.Width, Me.Panel1.Height))     
bmp.Save("C:\panel.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)      
Panel1.Dock = DockStyle.Fill

一旦取消停靠,Drawtobitmap 将返回面板宽度和高度的图像。

将面板另存为 JPEG,仅保存可见区域 c#

于 2015-01-13T19:21:25.027 回答