C# 如何打印GMap.NET地图?

C# 如何打印GMap.NET地图?,c#,.net,printing,.net-4.0,gmap.net,C#,.net,Printing,.net 4.0,Gmap.net,所以在表单上有GMapControl。我想打印地图,这是代码 PrintDocument doc = new PrintDocument { DocumentName = "Map printing file" }; doc.PrintPage += DocOnPrintPage; PrintDialog dialog = new PrintDialog { Document = doc }; DialogResult result = dialog.ShowDialog(); if (resu

所以在表单上有GMapControl。我想打印地图,这是代码

PrintDocument doc = new PrintDocument { DocumentName = "Map printing file" };
doc.PrintPage += DocOnPrintPage;
PrintDialog dialog = new PrintDialog { Document = doc };
DialogResult result = dialog.ShowDialog();
if (result == DialogResult.OK) doc.Print();

我使用的是
ToImage()
方法,但它不能按我所希望的那样工作(它像PrintScreen,因为还有其他对象,如游标、对话框等)。没有这个对象,有没有解决方法来实现打印?
p.S.
Gmap.Net.Core
Gmap.Net.WindowForms
verison是1.7.0.0,而.Net Framework版本是4.0,我无法升级.Net Framework版本,因为一些客户端正在使用Windows XP。

问题通过使用临时映像得到解决

string path = Path.GetTempPath() + Path.GetRandomFileName() + @".png";
_tmpImage = View.gmap.ToImage();
if (_tmpImage == null) return;
_tmpImage.Save(path);

PrintDocument doc = new PrintDocument { DocumentName = "Map printing file" };
doc.PrintPage += DocOnPrintPage;
PrintDialog dialog = new PrintDialog { Document = doc };
DialogResult result = dialog.ShowDialog();
if (result == DialogResult.OK) doc.Print();

通过使用临时图像解决了此问题

string path = Path.GetTempPath() + Path.GetRandomFileName() + @".png";
_tmpImage = View.gmap.ToImage();
if (_tmpImage == null) return;
_tmpImage.Save(path);

PrintDocument doc = new PrintDocument { DocumentName = "Map printing file" };
doc.PrintPage += DocOnPrintPage;
PrintDialog dialog = new PrintDialog { Document = doc };
DialogResult result = dialog.ShowDialog();
if (result == DialogResult.OK) doc.Print();

假设您有一个名为“MyMap”的GMap.NET.WindowsForms.GMapControl,则使用以下命令:

Dim ThisMap As New Bitmap(MyMap.Width, MyMap.Height)
MyMap.DrawToBitmap(ThisMap, New Rectangle(0, 0, SavImg.Width, SavImg.Height))

然后,您可以使用“ThisMap”执行您想要的操作。

假设您有一个名为“MyMap”的GMap.NET.WindowsForms.GMapControl,然后使用以下命令:

Dim ThisMap As New Bitmap(MyMap.Width, MyMap.Height)
MyMap.DrawToBitmap(ThisMap, New Rectangle(0, 0, SavImg.Width, SavImg.Height))
然后你可以用“这张地图”做你想做的事情