Metafile Klas

Definitie

Hiermee definieert u een afbeeldingsmetabestand. Een metabestand bevat records die een reeks grafische bewerkingen beschrijven die kunnen worden vastgelegd (samengesteld) en worden afgespeeld (weergegeven). Deze klasse kan niet worden overgenomen.

public ref class Metafile sealed : System::Drawing::Image
[System.Runtime.InteropServices.ComVisible(false)]
[System.Serializable]
public sealed class Metafile : System.Drawing.Image
[System.Serializable]
public sealed class Metafile : System.Drawing.Image
[<System.Runtime.InteropServices.ComVisible(false)>]
[<System.Serializable>]
type Metafile = class
    inherit Image
[<System.Serializable>]
type Metafile = class
    inherit Image
Public NotInheritable Class Metafile
Inherits Image
Overname
Kenmerken

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u een Metafile methode maakt en gebruikt PlayRecord .


using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;

// for Marshal.Copy
using System.Runtime.InteropServices; 

public class Form1 : Form
{
    private Metafile metafile1;
    private Graphics.EnumerateMetafileProc metafileDelegate;
    private Point destPoint;
    public Form1()
    {
        metafile1 = new Metafile(@"C:\Test.wmf");
        metafileDelegate = new Graphics.EnumerateMetafileProc(MetafileCallback);
        destPoint = new Point(20, 10);
    }
    protected override void OnPaint(PaintEventArgs e)
    {
        e.Graphics.EnumerateMetafile(metafile1, destPoint, metafileDelegate);
    }
    private bool MetafileCallback(
       EmfPlusRecordType recordType,
       int flags,
       int dataSize,
       IntPtr data,
       PlayRecordCallback callbackData)
    {
        byte[] dataArray = null;
        if (data != IntPtr.Zero)
        {
            // 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);
        }

        metafile1.PlayRecord(recordType, flags, dataSize, dataArray);

        return true;
    }

    static void Main()
    {
        Application.Run(new Form1());
    }
}
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

Opmerkingen

Wanneer u de methode Save gebruikt om een afbeelding op te slaan als een Windows WMF-bestand (Metafile Format) of EMF-bestand (Enhanced Metafile Format), wordt het resulterende bestand opgeslagen als een PNG-bestand (Portable Network Graphics). Dit gedrag treedt op omdat het GDI+-onderdeel van .NET Framework geen encoder heeft die u kunt gebruiken om bestanden op te slaan als .wmf- of .emf-bestanden.

Note

In .NET 6 en latere versies wordt het pakket System.Drawing.Common, dat dit type bevat, alleen ondersteund op Windows-besturingssystemen. Het gebruik van dit type in platformoverschrijdende apps veroorzaakt compileertijdwaarschuwingen en runtime-uitzonderingen. Zie System.Drawing.Common alleen ondersteund in Windows voor meer informatie.

Constructors

Name Description
Metafile(IntPtr, Boolean)

Initialiseert een nieuw exemplaar van de Metafile klasse vanuit de opgegeven ingang.

Metafile(IntPtr, EmfType, String)

Initialiseert een nieuw exemplaar van de Metafile klasse van de opgegeven ingang naar een apparaatcontext en een EmfType opsomming die de indeling van de Metafileklasse aangeeft. Een tekenreeks kan worden opgegeven om het bestand een naam te geven.

Metafile(IntPtr, EmfType)

Initialiseert een nieuw exemplaar van de Metafile klasse van de opgegeven ingang naar een apparaatcontext en een EmfType opsomming die de indeling van de Metafileklasse aangeeft.

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType, String)

Initialiseert een nieuw exemplaar van de Metafile klasse vanuit de opgegeven apparaatcontext, gebonden door de opgegeven rechthoek die gebruikmaakt van de opgegeven maateenheid en een EmfType opsomming die de notatie van de Metafileklasse aangeeft. Er kan een tekenreeks worden opgegeven om het bestand een naam te geven.

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType)

Initialiseert een nieuw exemplaar van de Metafile klasse vanuit de opgegeven apparaatcontext, gebonden door de opgegeven rechthoek die gebruikmaakt van de opgegeven maateenheid en een EmfType opsomming die de notatie van de Metafileklasse aangeeft.

Metafile(IntPtr, Rectangle, MetafileFrameUnit)

Initialiseert een nieuw exemplaar van de Metafile klasse vanuit de opgegeven apparaatcontext, gebonden door de opgegeven rechthoek die gebruikmaakt van de opgegeven maateenheid.

Metafile(IntPtr, Rectangle)

Initialiseert een nieuw exemplaar van de Metafile klasse vanuit de opgegeven apparaatcontext, gebonden door de opgegeven rechthoek.

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType, String)

Initialiseert een nieuw exemplaar van de Metafile klasse vanuit de opgegeven apparaatcontext, gebonden door de opgegeven rechthoek die gebruikmaakt van de opgegeven maateenheid en een EmfType opsomming die de notatie van de Metafileklasse aangeeft. Er kan een tekenreeks worden opgegeven om het bestand een naam te geven.

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType)

Initialiseert een nieuw exemplaar van de Metafile klasse vanuit de opgegeven apparaatcontext, gebonden door de opgegeven rechthoek die gebruikmaakt van de opgegeven maateenheid en een EmfType opsomming die de notatie van de Metafileklasse aangeeft.

Metafile(IntPtr, RectangleF, MetafileFrameUnit)

Initialiseert een nieuw exemplaar van de Metafile klasse vanuit de opgegeven apparaatcontext, gebonden door de opgegeven rechthoek die gebruikmaakt van de opgegeven maateenheid.

Metafile(IntPtr, RectangleF)

Initialiseert een nieuw exemplaar van de Metafile klasse vanuit de opgegeven apparaatcontext, gebonden door de opgegeven rechthoek.

Metafile(IntPtr, WmfPlaceableFileHeader, Boolean)

Initialiseert een nieuw exemplaar van de Metafile klasse van de opgegeven ingang en een WmfPlaceableFileHeader. deleteWmf De parameter kan ook worden gebruikt om de ingang te verwijderen wanneer het metabestand wordt verwijderd.

Metafile(IntPtr, WmfPlaceableFileHeader)

Initialiseert een nieuw exemplaar van de Metafile klasse van de opgegeven ingang en een WmfPlaceableFileHeader.

Metafile(Stream, IntPtr, EmfType, String)

Initialiseert een nieuw exemplaar van de klasse Metafile uit de opgegeven gegevensstroom, een Windows ingang naar een apparaatcontext en een EmfType opsomming waarmee de indeling van de Metafile wordt opgegeven. Ook kan een tekenreeks met een beschrijvende naam voor de nieuwe Metafile worden toegevoegd.

Metafile(Stream, IntPtr, EmfType)

Initialiseert een nieuw exemplaar van de klasse Metafile uit de opgegeven gegevensstroom, een Windows ingang naar een apparaatcontext en een EmfType opsomming waarmee de indeling van de Metafile wordt opgegeven.

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String)

Initialiseert een nieuw exemplaar van de klasse Metafile uit de opgegeven gegevensstroom, een Windows greep naar een apparaatcontext, een Rectangle-structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile, de opgegeven maateenheid en een opsomming EmfType aangeeft waarmee de indeling van de Metafile wordt opgegeven. Een tekenreeks die een beschrijvende naam voor de nieuwe Metafile bevat, kan worden toegevoegd.

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType)

Initialiseert een nieuw exemplaar van de klasse Metafile uit de opgegeven gegevensstroom, een Windows greep naar een apparaatcontext, een Rectangle-structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile, de opgegeven maateenheid en een opsomming EmfType aangeeft waarmee de indeling van de Metafile wordt opgegeven.

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit)

Initialiseert een nieuw exemplaar van de klasse Metafile van de opgegeven gegevensstroom, een Windows ingang naar een apparaatcontext, een Rectangle structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile en de opgegeven maateenheid aangeeft.

Metafile(Stream, IntPtr, Rectangle)

Initialiseert een nieuw exemplaar van de Metafile-klasse van de opgegeven gegevensstroom, een Windows ingang naar een apparaatcontext en een Rectangle structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile begrenst.

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String)

Initialiseert een nieuw exemplaar van de klasse Metafile uit de opgegeven gegevensstroom, een Windows greep naar een apparaatcontext, een RectangleF-structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile, de opgegeven maateenheid en een opsomming EmfType aangeeft waarmee de indeling van de Metafile wordt opgegeven. Een tekenreeks die een beschrijvende naam voor de nieuwe Metafile bevat, kan worden toegevoegd.

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType)

Initialiseert een nieuw exemplaar van de klasse Metafile uit de opgegeven gegevensstroom, een Windows greep naar een apparaatcontext, een RectangleF-structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile, de opgegeven maateenheid en een opsomming EmfType aangeeft waarmee de indeling van de Metafile wordt opgegeven.

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit)

Initialiseert een nieuw exemplaar van de klasse Metafile van de opgegeven gegevensstroom, een Windows ingang naar een apparaatcontext, een RectangleF structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile en de opgegeven maateenheid aangeeft.

Metafile(Stream, IntPtr, RectangleF)

Initialiseert een nieuw exemplaar van de Metafile-klasse van de opgegeven gegevensstroom, een Windows ingang naar een apparaatcontext en een RectangleF structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile begrenst.

Metafile(Stream, IntPtr)

Initialiseert een nieuw exemplaar van de Metafile klasse vanuit de opgegeven gegevensstroom.

Metafile(Stream)

Initialiseert een nieuw exemplaar van de Metafile klasse vanuit de opgegeven gegevensstroom.

Metafile(String, IntPtr, EmfType, String)

Initialiseert een nieuw exemplaar van de klasse Metafile met de opgegeven bestandsnaam, een Windows ingang naar een apparaatcontext en een EmfType opsomming waarmee de indeling van de Metafile wordt opgegeven. Er kan ook een beschrijvende tekenreeks worden toegevoegd.

Metafile(String, IntPtr, EmfType)

Initialiseert een nieuw exemplaar van de klasse Metafile met de opgegeven bestandsnaam, een Windows ingang naar een apparaatcontext en een EmfType opsomming waarmee de indeling van de Metafile wordt opgegeven.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String)

Initialiseert een nieuw exemplaar van de klasse Metafile met de opgegeven bestandsnaam. een Windows greep naar een apparaatcontext, een Rectangle structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile, de opgegeven maateenheid en een opsomming EmfType die de notatie van de Metafile aangeeft. Er kan ook een beschrijvende tekenreeks worden toegevoegd.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType)

Initialiseert een nieuw exemplaar van de klasse Metafile met de opgegeven bestandsnaam. een Windows greep naar een apparaatcontext, een Rectangle structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile, de opgegeven maateenheid en een opsomming EmfType die de notatie van de Metafile aangeeft.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, String)

Initialiseert een nieuw exemplaar van de klasse Metafile met de opgegeven bestandsnaam, een Windows ingang naar een apparaatcontext, een Rectangle structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile en de opgegeven maateenheid aangeeft. Er kan ook een beschrijvende tekenreeks worden toegevoegd.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit)

Initialiseert een nieuw exemplaar van de klasse Metafile met de opgegeven bestandsnaam, een Windows ingang naar een apparaatcontext, een Rectangle structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile en de opgegeven maateenheid aangeeft.

Metafile(String, IntPtr, Rectangle)

Initialiseert een nieuw exemplaar van de klasse Metafile met de opgegeven bestandsnaam, een Windows ingang naar een apparaatcontext en een Rectangle structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile begrenst.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String)

Initialiseert een nieuw exemplaar van de klasse Metafile met de opgegeven bestandsnaam. een Windows greep naar een apparaatcontext, een RectangleF structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile, de opgegeven maateenheid en een opsomming EmfType die de notatie van de Metafile aangeeft. Er kan ook een beschrijvende tekenreeks worden toegevoegd.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType)

Initialiseert een nieuw exemplaar van de klasse Metafile met de opgegeven bestandsnaam. een Windows greep naar een apparaatcontext, een RectangleF structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile, de opgegeven maateenheid en een opsomming EmfType die de notatie van de Metafile aangeeft.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, String)

Initialiseert een nieuw exemplaar van de klasse Metafile met de opgegeven bestandsnaam, een Windows ingang naar een apparaatcontext, een RectangleF structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile en de opgegeven maateenheid aangeeft. Er kan ook een beschrijvende tekenreeks worden toegevoegd.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit)

Initialiseert een nieuw exemplaar van de klasse Metafile met de opgegeven bestandsnaam, een Windows ingang naar een apparaatcontext, een RectangleF structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile en de opgegeven maateenheid aangeeft.

Metafile(String, IntPtr, RectangleF)

Initialiseert een nieuw exemplaar van de klasse Metafile met de opgegeven bestandsnaam, een Windows ingang naar een apparaatcontext en een RectangleF structuur die de rechthoek vertegenwoordigt die de nieuwe Metafile begrenst.

Metafile(String, IntPtr)

Initialiseert een nieuw exemplaar van de Metafile klasse met de opgegeven bestandsnaam.

Metafile(String)

Initialiseert een nieuw exemplaar van de Metafile klasse op basis van de opgegeven bestandsnaam.

Eigenschappen

Name Description
Flags

Hiermee worden kenmerkvlagmen opgehaald voor de pixelgegevens van deze Image.

(Overgenomen van Image)
FrameDimensionsList

Hiermee haalt u een matrix van GUID's op die de afmetingen van frames in dit Imagevertegenwoordigen.

(Overgenomen van Image)
Height

Hiermee haalt u de hoogte, in pixels, van deze Image.

(Overgenomen van Image)
HorizontalResolution

Hiermee haalt u de horizontale resolutie, in pixels per inch, van deze Image.

(Overgenomen van Image)
Palette

Hiermee haalt u het kleurenpalet op of stelt u dit Imagein.

(Overgenomen van Image)
PhysicalDimension

Hiermee haalt u de breedte en hoogte van deze afbeelding op.

(Overgenomen van Image)
PixelFormat

Hiermee haalt u de pixelindeling voor dit Imageop.

(Overgenomen van Image)
PropertyIdList

Hiermee worden id's opgehaald van de eigenschapsitems die in dit Imageitem zijn opgeslagen.

(Overgenomen van Image)
PropertyItems

Hiermee worden alle eigenschapsitems (stukjes metagegevens) opgeslagen in deze Image.

(Overgenomen van Image)
RawFormat

Hiermee haalt u de bestandsindeling van dit Imagebestand op.

(Overgenomen van Image)
Size

Hiermee haalt u de breedte en hoogte, in pixels, van deze afbeelding op.

(Overgenomen van Image)
Tag

Hiermee haalt u een object op of stelt u een object in dat aanvullende gegevens over de afbeelding biedt.

(Overgenomen van Image)
VerticalResolution

Hiermee haalt u de verticale resolutie, in pixels per inch, van deze Image.

(Overgenomen van Image)
Width

Hiermee wordt de breedte, in pixels, van deze Image.

(Overgenomen van Image)

Methoden

Name Description
Clone()

Hiermee maakt u een exacte kopie van deze Image.

(Overgenomen van Image)
CreateObjRef(Type)

Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object.

(Overgenomen van MarshalByRefObject)
Dispose()

Alle resources die door deze Imageresources worden gebruikt, worden vrijgegeven.

(Overgenomen van Image)
Dispose(Boolean)

Publiceert de niet-beheerde resources die worden gebruikt door de Image beheerde resources en brengt eventueel de beheerde resources vrij.

(Overgenomen van Image)
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetBounds(GraphicsUnit)

Hiermee haalt u de grenzen van de afbeelding op in de opgegeven eenheid.

(Overgenomen van Image)
GetEncoderParameterList(Guid)

Retourneert informatie over de parameters die worden ondersteund door de opgegeven afbeeldingscoderingsprogramma.

(Overgenomen van Image)
GetFrameCount(FrameDimension)

Retourneert het aantal frames van de opgegeven dimensie.

(Overgenomen van Image)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetHenhmetafile()

Hiermee wordt een Windows ingang geretourneerd naar een verbeterde Metafile.

GetLifetimeService()

Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd.

(Overgenomen van MarshalByRefObject)
GetMetafileHeader()

Retourneert de MetafileHeader gekoppelde Metafilewaarde .

GetMetafileHeader(IntPtr, WmfPlaceableFileHeader)

Retourneert de MetafileHeader gekoppelde aan de opgegeven Metafile.

GetMetafileHeader(IntPtr)

Retourneert de MetafileHeader gekoppelde aan de opgegeven Metafile.

GetMetafileHeader(Stream)

Retourneert de MetafileHeader gekoppelde aan de opgegeven Metafile.

GetMetafileHeader(String)

Retourneert de MetafileHeader gekoppelde aan de opgegeven Metafile.

GetPropertyItem(Int32)

Hiermee wordt het opgegeven eigenschapsitem opgehaald.Image

(Overgenomen van Image)
GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr)

Retourneert een miniatuur voor dit Image.

(Overgenomen van Image)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
InitializeLifetimeService()

Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren.

(Overgenomen van MarshalByRefObject)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
MemberwiseClone(Boolean)

Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object.

(Overgenomen van MarshalByRefObject)
PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[])

Hiermee wordt een afzonderlijke metabestandrecord afgespeeld.

RemovePropertyItem(Int32)

Hiermee verwijdert u het opgegeven eigenschapsitem uit deze Image.

(Overgenomen van Image)
RotateFlip(RotateFlipType)

Draait, spiegelt of draait en spiegelt de Image.

(Overgenomen van Image)
Save(Stream, ImageCodecInfo, EncoderParameters)

Slaat deze afbeelding op in de opgegeven stroom, met de opgegeven encoder- en afbeeldingscoderingsprogrammaparameters.

(Overgenomen van Image)
Save(Stream, ImageFormat)

Slaat deze afbeelding op in de opgegeven stroom in de opgegeven indeling.

(Overgenomen van Image)
Save(String, ImageCodecInfo, EncoderParameters)

Hiermee wordt dit Image opgeslagen in het opgegeven bestand, met de opgegeven encoder- en image-encoderparameters.

(Overgenomen van Image)
Save(String, ImageFormat)

Hiermee wordt dit Image opgeslagen in het opgegeven bestand in de opgegeven indeling.

(Overgenomen van Image)
Save(String)

Slaat dit Image op in het opgegeven bestand of de opgegeven stream.

(Overgenomen van Image)
SaveAdd(EncoderParameters)

Voegt een frame toe aan het bestand of de stream die is opgegeven in een vorige aanroep naar de Save methode. Gebruik deze methode om geselecteerde frames van een afbeelding met meerdere frames op te slaan in een andere afbeelding met meerdere frames.

(Overgenomen van Image)
SaveAdd(Image, EncoderParameters)

Voegt een frame toe aan het bestand of de stream die is opgegeven in een vorige aanroep naar de Save methode.

(Overgenomen van Image)
SelectActiveFrame(FrameDimension, Int32)

Hiermee selecteert u het frame dat is opgegeven door de dimensie en index.

(Overgenomen van Image)
SetPropertyItem(PropertyItem)

Hiermee slaat u een eigenschapsitem (stukje metagegevens) op.Image

(Overgenomen van Image)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

Name Description
ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Vult een SerializationInfo met de gegevens die nodig zijn om het doelobject te serialiseren.

(Overgenomen van Image)

Van toepassing op