我需要创建一些内存中(不是基于文件的)元文件并显示它们。在OnPaint
我的表单面板的处理程序中,我调用此代码:
Metafile metafile;
using( Graphics offScreenGraphics = Graphics.FromHwndInternal( IntPtr.Zero ) )
{
IntPtr hDC = offScreenGraphics.GetHdc();
metafile = new Metafile( hDC, EmfType.EmfPlusDual );
offScreenGraphics.ReleaseHdc();
}
Graphics graphics = Graphics.FromImage( metafile );
graphics.FillRectangle( Brushes.LightYellow, 0, 0, 100, 100 );
graphics.DrawLine( Pens.Red, 50, 50, 100, 100 );
e.Graphics.DrawImage( metafile, 50, 50 );
但是,没有显示任何内容,无论我尝试在 中绘制什么metafile
,它PhysicalDimension
总是像 35x35 一样,考虑到单位是百分之一毫米,这太小了!
注意:当然这是一个人为的例子,我不会创建一个元文件只是为了用相同的方法绘制一些图形。我需要在我的应用程序中传递元文件。这只是一个简单的测试,以确保我能够使用该DrawImage
方法绘制它。