O'Reilly logo

.NET Windows Forms in a Nutshell by Matthew Adams, Ian Griffiths

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Name

Metafile

Synopsis

A metafile represents a set of records, each of which encapsulates a graphics operation.

There are a large number of different constructors, which allow you to construct a metafile from a file or stream (in Windows Enhanced Metafile File format), a system HDC (which can be obtained from a Graphics surface if necessary), or a Windows EMF handle. You can subsequently retrieve the EMF handle (for interop) with the GetHenhmetafile() method. Many of the methods also allow you to specify a rectangle that positions the metafile on the page, along with the units that define that rectangle (see MetafileFrameUnit).

You can retrieve the MetafileHeader with the GetMetafileHeader() method.

While you can use the System.Drawing.Graphics.DrawImage() method to paint the metafile, you can play an individual record with the PlayRecord() method. See EmfPlusRecordType for information about EMF records.

To record a metafile, you should create a reference System.Drawing.Graphics surface, and then use the System.Drawing.Graphics.GetHdc() to lock its Win32 HDC. You can then pass this as the reference HDC in an appropriate constructor for your Metafile object. You can then use the System.Drawing.Graphics.FromImage() method to get a graphics surface for the metafile. Everything you then draw on the surface will be recorded on the metafile. If you specified a filename or stream in the Metafile constructor, the image will automatically be stored, or you can call the Save() method. You should ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required