C# 使用图元文件时如何设置边界图形?

C# 使用图元文件时如何设置边界图形?,c#,.net,graphics,metafile,.emf,C#,.net,Graphics,Metafile,.emf,在我们的应用程序中,可以创建不同文件格式的图像,如PNG、BMP、JPEG等。 现在我正在研究创建图元文件图像(.emf)的可能性。 有了我们的图表,我可以实现这一点,因为我们使用的是microsoft图表库,通过它可以导出.emf格式的图表 (ChartImageFormat.EmfDual) 我们还创建地图,这就是它出错的地方。当我使用位图创建图形时,图形元素有一个有用的可视剪贴簿 var image = new Bitmap(Width, Height); using (var grap

在我们的应用程序中,可以创建不同文件格式的图像,如PNG、BMP、JPEG等。 现在我正在研究创建图元文件图像(.emf)的可能性。 有了我们的图表,我可以实现这一点,因为我们使用的是microsoft图表库,通过它可以导出.emf格式的图表

(ChartImageFormat.EmfDual)

我们还创建地图,这就是它出错的地方。当我使用位图创建图形时,图形元素有一个有用的可视剪贴簿

var image = new Bitmap(Width, Height);

using (var graphics = Graphics.FromImage(image))
{
 //visibleClipbounds: {X = 0 Y = 0 Width = 1241 Height = 774}
}
当我使用图元文件创建图形对象时,可见剪贴簿是巨大的

Graphics refG = Graphics.FromHwndInternal(IntPtr.Zero);
IntPtr refGrap = refG.GetHdc();
Metafile m = new Metafile(refGrap, EmfType.EmfPlusDual, "...");
using (var graphics = Graphics.FromImage(m))
{
//visibleClipbounds: {X = -4194304 Y = -4194304 Width = 8388608 Height = 8388608}
}

是否有一种方法可以使用图元文件创建图形元素,但保持可访问剪贴簿的方式与使用位图创建图形元素的方式相同?

图元文件的要点是没有固定大小。矢量图形和位图图形的本质区别在于可以自由伸缩。请确保永远不要使用Graphics.DrawImage(),这会破坏使用图元文件的意义。然而,当您生成EMF时,您应该包括一个大小建议。使用接受矩形F的构造函数重载。图元文件的要点是不具有固定大小。矢量图形和位图图形的本质区别在于可以自由伸缩。请确保永远不要使用Graphics.DrawImage(),这会破坏使用图元文件的意义。然而,当您生成EMF时,您应该包括一个大小建议。使用接受矩形F的构造函数重载。