如何在WPF控件中进行屏幕截图?
如何在WPF控件中进行屏幕截图?
我使用Bing地图WPF控件创建了一个WPF应用程序。
我希望能够仅截取Bing地图控件。
我使用以下代码进行截图:
// 存储地图控件的尺寸 int Width = (int)MyMap.RenderSize.Width; int Height = (int)MyMap.RenderSize.Height; System.Windows.Point relativePoint = MyMap.TransformToAncestor(Application.Current.MainWindow).Transform(new System.Windows.Point(0, 0)); int X = (int)relativePoint.X; int Y = (int)relativePoint.Y; Bitmap Screenshot = new Bitmap(Width, Height); Graphics G = Graphics.FromImage(Screenshot); // 剪切所需区域 G.CopyFromScreen(X, Y, 0, 0, new System.Drawing.Size(Width, Height), CopyPixelOperation.SourceCopy); string fileName = "C:\\myCapture.bmp"; System.IO.FileStream fs = System.IO.File.Open(fileName, System.IO.FileMode.OpenOrCreate); Screenshot.Save(fs, System.Drawing.Imaging.ImageFormat.Bmp); fs.Close();
我的问题:
Width
和Height
的值似乎是错误的。
生成的截图似乎使用了错误的坐标。
我的截图:
我期望的结果:
为什么会得到这样的结果?
我尝试了发布模式,并且没有使用Visual Studio,结果是相同的。