Metafile Class
Defines a graphic metafile. A metafile contains records that describe a sequence of graphics operations that can be recorded (constructed) and played back (displayed). This class is not inheritable.
Assembly: System.Drawing (in System.Drawing.dll)
| Name | Description | |
|---|---|---|
![]() | Metafile(IntPtr, Boolean) | Initializes a new instance of the Metafile class from the specified handle. |
![]() | Metafile(IntPtr, EmfType) | Initializes a new instance of the Metafile class from the specified handle to a device context and an EmfType enumeration that specifies the format of the Metafile. |
![]() | Metafile(IntPtr, EmfType, String) | Initializes a new instance of the Metafile class from the specified handle to a device context and an EmfType enumeration that specifies the format of the Metafile. A string can be supplied to name the file. |
![]() | Metafile(IntPtr, Rectangle) | Initializes a new instance of the Metafile class from the specified device context, bounded by the specified rectangle. |
![]() | Metafile(IntPtr, Rectangle, MetafileFrameUnit) | Initializes a new instance of the Metafile class from the specified device context, bounded by the specified rectangle that uses the supplied unit of measure. |
![]() | Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType) | Initializes a new instance of the Metafile class from the specified device context, bounded by the specified rectangle that uses the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile. |
![]() | Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) | Initializes a new instance of the Metafile class from the specified device context, bounded by the specified rectangle that uses the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile. A string can be provided to name the file. |
![]() | Metafile(IntPtr, RectangleF) | Initializes a new instance of the Metafile class from the specified device context, bounded by the specified rectangle. |
![]() | Metafile(IntPtr, RectangleF, MetafileFrameUnit) | Initializes a new instance of the Metafile class from the specified device context, bounded by the specified rectangle that uses the supplied unit of measure. |
![]() | Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType) | Initializes a new instance of the Metafile class from the specified device context, bounded by the specified rectangle that uses the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile. |
![]() | Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) | Initializes a new instance of the Metafile class from the specified device context, bounded by the specified rectangle that uses the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile. A string can be provided to name the file. |
![]() | Metafile(IntPtr, WmfPlaceableFileHeader) | Initializes a new instance of the Metafile class from the specified handle and a WmfPlaceableFileHeader. |
![]() | Metafile(IntPtr, WmfPlaceableFileHeader, Boolean) | Initializes a new instance of the Metafile class from the specified handle and a WmfPlaceableFileHeader. Also, the deleteWmf parameter can be used to delete the handle when the metafile is deleted. |
![]() | Metafile(Stream) | Initializes a new instance of the Metafile class from the specified data stream. |
![]() | Metafile(Stream, IntPtr) | Initializes a new instance of the Metafile class from the specified data stream. |
![]() | Metafile(Stream, IntPtr, EmfType) | Initializes a new instance of the Metafile class from the specified data stream, a Windows handle to a device context, and an EmfType enumeration that specifies the format of the Metafile. |
![]() | Metafile(Stream, IntPtr, EmfType, String) | Initializes a new instance of the Metafile class from the specified data stream, a Windows handle to a device context, and an EmfType enumeration that specifies the format of the Metafile. Also, a string that contains a descriptive name for the new Metafile can be added. |
![]() | Metafile(Stream, IntPtr, Rectangle) | Initializes a new instance of the Metafile class from the specified data stream, a Windows handle to a device context, and a Rectangle structure that represents the rectangle that bounds the new Metafile. |
![]() | Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit) | Initializes a new instance of the Metafile class from the specified data stream, a Windows handle to a device context, a Rectangle structure that represents the rectangle that bounds the new Metafile, and the supplied unit of measure. |
![]() | Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType) | Initializes a new instance of the Metafile class from the specified data stream, a Windows handle to a device context, a Rectangle structure that represents the rectangle that bounds the new Metafile, the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile. |
![]() | Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) | Initializes a new instance of the Metafile class from the specified data stream, a Windows handle to a device context, a Rectangle structure that represents the rectangle that bounds the new Metafile, the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile. A string that contains a descriptive name for the new Metafile can be added. |
![]() | Metafile(Stream, IntPtr, RectangleF) | Initializes a new instance of the Metafile class from the specified data stream, a Windows handle to a device context, and a RectangleF structure that represents the rectangle that bounds the new Metafile. |
![]() | Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit) | Initializes a new instance of the Metafile class from the specified data stream, a Windows handle to a device context, a RectangleF structure that represents the rectangle that bounds the new Metafile, and the supplied unit of measure. |
![]() | Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType) | Initializes a new instance of the Metafile class from the specified data stream, a Windows handle to a device context, a RectangleF structure that represents the rectangle that bounds the new Metafile, the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile. |
![]() | Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) | Initializes a new instance of the Metafile class from the specified data stream, a Windows handle to a device context, a RectangleF structure that represents the rectangle that bounds the new Metafile, the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile. A string that contains a descriptive name for the new Metafile can be added. |
![]() | Metafile(String) | Initializes a new instance of the Metafile class from the specified file name. |
![]() | Metafile(String, IntPtr) | Initializes a new instance of the Metafile class with the specified file name. |
![]() | Metafile(String, IntPtr, EmfType) | Initializes a new instance of the Metafile class with the specified file name, a Windows handle to a device context, and an EmfType enumeration that specifies the format of the Metafile. |
![]() | Metafile(String, IntPtr, EmfType, String) | Initializes a new instance of the Metafile class with the specified file name, a Windows handle to a device context, and an EmfType enumeration that specifies the format of the Metafile. A descriptive string can be added, as well. |
![]() | Metafile(String, IntPtr, Rectangle) | Initializes a new instance of the Metafile class with the specified file name, a Windows handle to a device context, and a Rectangle structure that represents the rectangle that bounds the new Metafile. |
![]() | Metafile(String, IntPtr, Rectangle, MetafileFrameUnit) | Initializes a new instance of the Metafile class with the specified file name, a Windows handle to a device context, a Rectangle structure that represents the rectangle that bounds the new Metafile, and the supplied unit of measure. |
![]() | Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType) | |
![]() | Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) | Initializes a new instance of the Metafile class with the specified file name, a Windows handle to a device context, a Rectangle structure that represents the rectangle that bounds the new Metafile, the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile. A descriptive string can also be added. |
![]() | Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, String) | Initializes a new instance of the Metafile class with the specified file name, a Windows handle to a device context, a Rectangle structure that represents the rectangle that bounds the new Metafile, and the supplied unit of measure. A descriptive string can also be added. |
![]() | Metafile(String, IntPtr, RectangleF) | Initializes a new instance of the Metafile class with the specified file name, a Windows handle to a device context, and a RectangleF structure that represents the rectangle that bounds the new Metafile. |
![]() | Metafile(String, IntPtr, RectangleF, MetafileFrameUnit) | Initializes a new instance of the Metafile class with the specified file name, a Windows handle to a device context, a RectangleF structure that represents the rectangle that bounds the new Metafile, and the supplied unit of measure. |
![]() | Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType) | Initializes a new instance of the Metafile class with the specified file name, a Windows handle to a device context, a RectangleF structure that represents the rectangle that bounds the new Metafile, the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile. |
![]() | Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) | Initializes a new instance of the Metafile class with the specified file name, a Windows handle to a device context, a RectangleF structure that represents the rectangle that bounds the new Metafile, the supplied unit of measure, and an EmfType enumeration that specifies the format of the Metafile. A descriptive string can also be added. |
![]() | Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, String) | Initializes a new instance of the Metafile class with the specified file name, a Windows handle to a device context, a RectangleF structure that represents the rectangle that bounds the new Metafile, and the supplied unit of measure. A descriptive string can also be added. |
| Name | Description | |
|---|---|---|
![]() | Flags | |
![]() | FrameDimensionsList | |
![]() | Height | |
![]() | HorizontalResolution | |
![]() | Palette | |
![]() | PhysicalDimension | Gets the width and height of this image.(Inherited from Image.) |
![]() | PixelFormat | |
![]() | PropertyIdList | |
![]() | PropertyItems | |
![]() | RawFormat | |
![]() | Size | Gets the width and height, in pixels, of this image.(Inherited from Image.) |
![]() | Tag | Gets or sets an object that provides additional data about the image.(Inherited from Image.) |
![]() | VerticalResolution | |
![]() | Width |
| Name | Description | |
|---|---|---|
![]() | Clone() | |
![]() | CreateObjRef(Type) | Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.(Inherited from MarshalByRefObject.) |
![]() | Dispose() | |
![]() | Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | GetBounds(GraphicsUnit) | Gets the bounds of the image in the specified unit.(Inherited from Image.) |
![]() | GetEncoderParameterList(Guid) | Returns information about the parameters supported by the specified image encoder.(Inherited from Image.) |
![]() | GetFrameCount(FrameDimension) | Returns the number of frames of the specified dimension.(Inherited from Image.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetHenhmetafile() | Returns a Windows handle to an enhanced Metafile. |
![]() | GetLifetimeService() | Retrieves the current lifetime service object that controls the lifetime policy for this instance.(Inherited from MarshalByRefObject.) |
![]() | GetMetafileHeader() | Returns the MetafileHeader associated with this Metafile. |
![]() ![]() | GetMetafileHeader(IntPtr) | Returns the MetafileHeader associated with the specified Metafile. |
![]() ![]() | GetMetafileHeader(IntPtr, WmfPlaceableFileHeader) | Returns the MetafileHeader associated with the specified Metafile. |
![]() ![]() | GetMetafileHeader(Stream) | Returns the MetafileHeader associated with the specified Metafile. |
![]() ![]() | GetMetafileHeader(String) | Returns the MetafileHeader associated with the specified Metafile. |
![]() | GetPropertyItem(Int32) | |
![]() | GetThumbnailImage(Int32, Int32, Image.GetThumbnailImageAbort, IntPtr) | |
![]() | GetType() | |
![]() | InitializeLifetimeService() | Obtains a lifetime service object to control the lifetime policy for this instance.(Inherited from MarshalByRefObject.) |
![]() | PlayRecord(EmfPlusRecordType, Int32, Int32, Byte()) | Plays an individual metafile record. |
![]() | RemovePropertyItem(Int32) | |
![]() | RotateFlip(RotateFlipType) | |
![]() | Save(Stream, ImageCodecInfo, EncoderParameters) | Saves this image to the specified stream, with the specified encoder and image encoder parameters.(Inherited from Image.) |
![]() | Save(Stream, ImageFormat) | Saves this image to the specified stream in the specified format.(Inherited from Image.) |
![]() | Save(String) | |
![]() | Save(String, ImageCodecInfo, EncoderParameters) | |
![]() | Save(String, ImageFormat) | |
![]() | SaveAdd(EncoderParameters) | |
![]() | SaveAdd(Image, EncoderParameters) | |
![]() | SelectActiveFrame(FrameDimension, Int32) | Selects the frame specified by the dimension and index.(Inherited from Image.) |
![]() | SetPropertyItem(PropertyItem) | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() ![]() | ISerializable.GetObjectData(SerializationInfo, StreamingContext) | Populates a SerializationInfo with the data needed to serialize the target object.(Inherited from Image.) |
When you use the Save method to save a graphic image as a Windows Metafile Format (WMF) or Enhanced Metafile Format (EMF) file, the resulting file is saved as a Portable Network Graphics (PNG) file instead. This behavior occurs because the GDI+ component of the .NET Framework does not have an encoder that you can use to save files as .wmf or .emf files.
The following code example demonstrates how to create a Metafile and use the PlayRecord method.
Imports System Imports System.Drawing Imports System.Drawing.Imaging Imports System.Windows.Forms ' for Marshal.Copy Imports System.Runtime.InteropServices Public Class Form1 Inherits Form Private metafile1 As Metafile Private metafileDelegate As Graphics.EnumerateMetafileProc Private destPoint As Point Public Sub New() metafile1 = New Metafile("C:\test.wmf") metafileDelegate = New Graphics.EnumerateMetafileProc(AddressOf MetafileCallback) destPoint = New Point(20, 10) End Sub Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs) e.Graphics.EnumerateMetafile(metafile1, destPoint, metafileDelegate) End Sub Private Function MetafileCallback(ByVal recordType As _ EmfPlusRecordType, ByVal flags As Integer, ByVal dataSize As Integer, _ ByVal data As IntPtr, ByVal callbackData As PlayRecordCallback) As Boolean Dim dataArray As Byte() = Nothing If data <> IntPtr.Zero Then ' Copy the unmanaged record to a managed byte buffer ' that can be used by PlayRecord. dataArray = New Byte(dataSize) {} Marshal.Copy(data, dataArray, 0, dataSize) End If metafile1.PlayRecord(recordType, flags, dataSize, dataArray) Return True End Function Shared Sub Main() Application.Run(New Form1()) End Sub End Class
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.




