Metafile Klass

Definition

Definierar en grafisk metafil. En metafil innehåller poster som beskriver en sekvens med grafikåtgärder som kan spelas in (konstrueras) och spelas upp (visas). Den här klassen är inte ärverbar.

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
Arv
Attribut

Exempel

I följande kodexempel visas hur du skapar och Metafile använder PlayRecord metoden.


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

Kommentarer

När du använder metoden Save för att spara en bild som en Windows WMF-fil (Metafile Format) eller EMF-fil (Enhanced Metafile Format) sparas den resulterande filen i stället som en PNG-fil (Portable Network Graphics). Det här beteendet beror på att GDI+-komponenten i .NET Framework inte har någon kodare som du kan använda för att spara filer som .wmf- eller .emf-filer.

Note

I .NET 6 och senare versioner stöds endast System.Drawing.Common-paketet, som innehåller den här typen, på Windows-operativsystem. Användning av den här typen i plattformsoberoende appar orsakar kompileringstidsvarningar och körningsfel. Mer information finns i System.Drawing.Common som endast stöds i Windows.

Konstruktorer

Name Description
Metafile(IntPtr, Boolean)

Initierar en ny instans av Metafile klassen från det angivna handtaget.

Metafile(IntPtr, EmfType, String)

Initierar en ny instans av Metafile klassen från det angivna handtaget till en enhetskontext och en EmfType uppräkning som anger formatet för Metafile. Du kan ange en sträng som namnger filen.

Metafile(IntPtr, EmfType)

Initierar en ny instans av Metafile klassen från det angivna handtaget till en enhetskontext och en EmfType uppräkning som anger formatet för Metafile.

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

Initierar en ny instans av Metafile klassen från den angivna enhetskontexten, begränsad av den angivna rektangel som använder den angivna måttenheten och en EmfType uppräkning som anger formatet för Metafile. Du kan ange en sträng som ger filen namnet.

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType)

Initierar en ny instans av Metafile klassen från den angivna enhetskontexten, begränsad av den angivna rektangel som använder den angivna måttenheten och en EmfType uppräkning som anger formatet för Metafile.

Metafile(IntPtr, Rectangle, MetafileFrameUnit)

Initierar en ny instans av Metafile klassen från den angivna enhetskontexten, som begränsas av den angivna rektangel som använder den angivna måttenheten.

Metafile(IntPtr, Rectangle)

Initierar en ny instans av Metafile klassen från den angivna enhetskontexten som begränsas av den angivna rektangeln.

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

Initierar en ny instans av Metafile klassen från den angivna enhetskontexten, begränsad av den angivna rektangel som använder den angivna måttenheten och en EmfType uppräkning som anger formatet för Metafile. Du kan ange en sträng som ger filen namnet.

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType)

Initierar en ny instans av Metafile klassen från den angivna enhetskontexten, begränsad av den angivna rektangel som använder den angivna måttenheten och en EmfType uppräkning som anger formatet för Metafile.

Metafile(IntPtr, RectangleF, MetafileFrameUnit)

Initierar en ny instans av Metafile klassen från den angivna enhetskontexten, som begränsas av den angivna rektangel som använder den angivna måttenheten.

Metafile(IntPtr, RectangleF)

Initierar en ny instans av Metafile klassen från den angivna enhetskontexten som begränsas av den angivna rektangeln.

Metafile(IntPtr, WmfPlaceableFileHeader, Boolean)

Initierar en ny instans av Metafile klassen från det angivna handtaget och en WmfPlaceableFileHeader. Dessutom kan parametern deleteWmf användas för att ta bort handtaget när metafilen tas bort.

Metafile(IntPtr, WmfPlaceableFileHeader)

Initierar en ny instans av Metafile klassen från det angivna handtaget och en WmfPlaceableFileHeader.

Metafile(Stream, IntPtr, EmfType, String)

Initierar en ny instans av klassen Metafile från den angivna dataströmmen, en Windows referens till en enhetskontext och en EmfType uppräkning som anger formatet för Metafile. Dessutom kan en sträng som innehåller ett beskrivande namn för det nya Metafile läggas till.

Metafile(Stream, IntPtr, EmfType)

Initierar en ny instans av klassen Metafile från den angivna dataströmmen, en Windows referens till en enhetskontext och en EmfType uppräkning som anger formatet för Metafile.

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

Initierar en ny instans av klassen Metafile från den angivna dataströmmen. en Windows hantera en enhetskontext, en Rectangle struktur som representerar rektangeln som begränsar den nya Metafile, den angivna måttenheten och en EmfType uppräkning som anger formatet för Metafile. En sträng som innehåller ett beskrivande namn för det nya Metafile kan läggas till.

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

Initierar en ny instans av klassen Metafile från den angivna dataströmmen. en Windows hantera en enhetskontext, en Rectangle struktur som representerar rektangeln som begränsar den nya Metafile, den angivna måttenheten och en EmfType uppräkning som anger formatet för Metafile.

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit)

Initierar en ny instans av klassen Metafile från den angivna dataströmmen, en Windows referens till en enhetskontext, en Rectangle struktur som representerar rektangeln som begränsar den nya Metafile och den angivna måttenheten.

Metafile(Stream, IntPtr, Rectangle)

Initierar en ny instans av klassen Metafile från den angivna dataströmmen, en Windows referens till en enhetskontext och en Rectangle struktur som representerar rektangeln som begränsar den nya Metafile.

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

Initierar en ny instans av klassen Metafile från den angivna dataströmmen. en Windows hantera en enhetskontext, en RectangleF struktur som representerar rektangeln som begränsar den nya Metafile, den angivna måttenheten och en EmfType uppräkning som anger formatet för Metafile. En sträng som innehåller ett beskrivande namn för det nya Metafile kan läggas till.

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

Initierar en ny instans av klassen Metafile från den angivna dataströmmen. en Windows hantera en enhetskontext, en RectangleF struktur som representerar rektangeln som begränsar den nya Metafile, den angivna måttenheten och en EmfType uppräkning som anger formatet för Metafile.

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit)

Initierar en ny instans av klassen Metafile från den angivna dataströmmen, en Windows referens till en enhetskontext, en RectangleF struktur som representerar rektangeln som begränsar den nya Metafile och den angivna måttenheten.

Metafile(Stream, IntPtr, RectangleF)

Initierar en ny instans av klassen Metafile från den angivna dataströmmen, en Windows referens till en enhetskontext och en RectangleF struktur som representerar rektangeln som begränsar den nya Metafile.

Metafile(Stream, IntPtr)

Initierar en ny instans av Metafile klassen från den angivna dataströmmen.

Metafile(Stream)

Initierar en ny instans av Metafile klassen från den angivna dataströmmen.

Metafile(String, IntPtr, EmfType, String)

Initierar en ny instans av klassen Metafile med det angivna filnamnet, en Windows referens till en enhetskontext och en EmfType uppräkning som anger formatet för Metafile. En beskrivande sträng kan också läggas till.

Metafile(String, IntPtr, EmfType)

Initierar en ny instans av klassen Metafile med det angivna filnamnet, en Windows referens till en enhetskontext och en EmfType uppräkning som anger formatet för Metafile.

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

Initierar en ny instans av klassen Metafile med det angivna filnamnet. en Windows referens till en enhetskontext, en Rectangle struktur som representerar rektangeln som begränsar den nya Metafile, den angivna måttenheten och en EmfType uppräkning som anger formatet på Metafile. En beskrivande sträng kan också läggas till.

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

Initierar en ny instans av klassen Metafile med det angivna filnamnet. en Windows referens till en enhetskontext, en Rectangle struktur som representerar rektangeln som begränsar den nya Metafile, den angivna måttenheten och en EmfType uppräkning som anger formatet på Metafile.

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

Initierar en ny instans av klassen Metafile med det angivna filnamnet, en Windows hantera till en enhetskontext, en Rectangle struktur som representerar rektangeln som begränsar den nya Metafile och den angivna måttenheten. En beskrivande sträng kan också läggas till.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit)

Initierar en ny instans av klassen Metafile med det angivna filnamnet, en Windows hantera till en enhetskontext, en Rectangle struktur som representerar rektangeln som begränsar den nya Metafile och den angivna måttenheten.

Metafile(String, IntPtr, Rectangle)

Initierar en ny instans av klassen Metafile med det angivna filnamnet, en Windows referens till en enhetskontext och en Rectangle struktur som representerar rektangeln som begränsar den nya Metafile.

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

Initierar en ny instans av klassen Metafile med det angivna filnamnet. en Windows referens till en enhetskontext, en RectangleF struktur som representerar rektangeln som begränsar den nya Metafile, den angivna måttenheten och en EmfType uppräkning som anger formatet på Metafile. En beskrivande sträng kan också läggas till.

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

Initierar en ny instans av klassen Metafile med det angivna filnamnet. en Windows referens till en enhetskontext, en RectangleF struktur som representerar rektangeln som begränsar den nya Metafile, den angivna måttenheten och en EmfType uppräkning som anger formatet på Metafile.

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

Initierar en ny instans av klassen Metafile med det angivna filnamnet, en Windows hantera till en enhetskontext, en RectangleF struktur som representerar rektangeln som begränsar den nya Metafile och den angivna måttenheten. En beskrivande sträng kan också läggas till.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit)

Initierar en ny instans av klassen Metafile med det angivna filnamnet, en Windows hantera till en enhetskontext, en RectangleF struktur som representerar rektangeln som begränsar den nya Metafile och den angivna måttenheten.

Metafile(String, IntPtr, RectangleF)

Initierar en ny instans av klassen Metafile med det angivna filnamnet, en Windows referens till en enhetskontext och en RectangleF struktur som representerar rektangeln som begränsar den nya Metafile.

Metafile(String, IntPtr)

Initierar en ny instans av Metafile klassen med det angivna filnamnet.

Metafile(String)

Initierar en ny instans av Metafile klassen från det angivna filnamnet.

Egenskaper

Name Description
Flags

Hämtar attributflaggor för pixeldata för den här Image.

(Ärvd från Image)
FrameDimensionsList

Hämtar en matris med GUID:er som representerar ramarnas dimensioner i den här Image.

(Ärvd från Image)
Height

Hämtar höjden, i bildpunkter, för den här Image.

(Ärvd från Image)
HorizontalResolution

Hämtar den vågräta upplösningen i bildpunkter per tum av den här Image.

(Ärvd från Image)
Palette

Hämtar eller anger den färgpalett som används för detta Image.

(Ärvd från Image)
PhysicalDimension

Hämtar bredden och höjden på den här bilden.

(Ärvd från Image)
PixelFormat

Hämtar pixelformatet för detta Image.

(Ärvd från Image)
PropertyIdList

Hämtar ID:t för de egenskapsobjekt som lagras i den här Image.

(Ärvd från Image)
PropertyItems

Hämtar alla egenskapsobjekt (metadatadelar) som lagras i den här Image.

(Ärvd från Image)
RawFormat

Hämtar filformatet för det här Image.

(Ärvd från Image)
Size

Hämtar bredden och höjden i bildpunkter för den här bilden.

(Ärvd från Image)
Tag

Hämtar eller anger ett objekt som innehåller ytterligare data om bilden.

(Ärvd från Image)
VerticalResolution

Hämtar den lodräta upplösningen i bildpunkter per tum av den här Image.

(Ärvd från Image)
Width

Hämtar bredden i bildpunkter för den här Image.

(Ärvd från Image)

Metoder

Name Description
Clone()

Skapar en exakt kopia av den här Image.

(Ärvd från Image)
CreateObjRef(Type)

Skapar ett objekt som innehåller all relevant information som krävs för att generera en proxy som används för att kommunicera med ett fjärrobjekt.

(Ärvd från MarshalByRefObject)
Dispose()

Släpper alla resurser som används av den här Image.

(Ärvd från Image)
Dispose(Boolean)

Släpper de ohanterade resurser som används av Image och släpper eventuellt de hanterade resurserna.

(Ärvd från Image)
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetBounds(GraphicsUnit)

Hämtar avbildningens gränser i den angivna enheten.

(Ärvd från Image)
GetEncoderParameterList(Guid)

Returnerar information om de parametrar som stöds av den angivna bildkodaren.

(Ärvd från Image)
GetFrameCount(FrameDimension)

Returnerar antalet bildrutor för den angivna dimensionen.

(Ärvd från Image)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetHenhmetafile()

Returnerar ett Windows-handtag till en utökad Metafile.

GetLifetimeService()

Hämtar det aktuella livslängdstjänstobjektet som styr livslängdsprincipen för den här instansen.

(Ärvd från MarshalByRefObject)
GetMetafileHeader()

Returnerar den MetafileHeader associerade med den här Metafile.

GetMetafileHeader(IntPtr, WmfPlaceableFileHeader)

Returnerar den MetafileHeader associerade med angiven Metafile.

GetMetafileHeader(IntPtr)

Returnerar den MetafileHeader associerade med angiven Metafile.

GetMetafileHeader(Stream)

Returnerar den MetafileHeader associerade med angiven Metafile.

GetMetafileHeader(String)

Returnerar den MetafileHeader associerade med angiven Metafile.

GetPropertyItem(Int32)

Hämtar det angivna egenskapsobjektet från den här Image.

(Ärvd från Image)
GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr)

Returnerar en miniatyrbild för den här Image.

(Ärvd från Image)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
InitializeLifetimeService()

Hämtar ett tjänstobjekt för livslängd för att styra livslängdsprincipen för den här instansen.

(Ärvd från MarshalByRefObject)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
MemberwiseClone(Boolean)

Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet.

(Ärvd från MarshalByRefObject)
PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[])

Spelar upp en enskild metafilpost.

RemovePropertyItem(Int32)

Tar bort det angivna egenskapsobjektet från den här Image.

(Ärvd från Image)
RotateFlip(RotateFlipType)

Roterar, vänder eller roterar och vänder Image.

(Ärvd från Image)
Save(Stream, ImageCodecInfo, EncoderParameters)

Sparar den här bilden i den angivna strömmen med de angivna kodarna och bildkodarparametrarna.

(Ärvd från Image)
Save(Stream, ImageFormat)

Sparar den här avbildningen i den angivna strömmen i det angivna formatet.

(Ärvd från Image)
Save(String, ImageCodecInfo, EncoderParameters)

Sparar detta Image i den angivna filen med de angivna parametrarna kodare och bildkodare.

(Ärvd från Image)
Save(String, ImageFormat)

Sparar detta Image i den angivna filen i det angivna formatet.

(Ärvd från Image)
Save(String)

Sparar detta Image i den angivna filen eller strömmen.

(Ärvd från Image)
SaveAdd(EncoderParameters)

Lägger till en ram i filen eller strömmen som angavs i ett tidigare anrop till Save metoden. Använd den här metoden för att spara markerade bildrutor från en bild med flera bildrutor till en annan bild med flera bildrutor.

(Ärvd från Image)
SaveAdd(Image, EncoderParameters)

Lägger till en ram i filen eller strömmen som angavs i ett tidigare anrop till Save metoden.

(Ärvd från Image)
SelectActiveFrame(FrameDimension, Int32)

Väljer den ram som anges av dimensionen och indexet.

(Ärvd från Image)
SetPropertyItem(PropertyItem)

Lagrar ett egenskapsobjekt (bit metadata) i den här Image.

(Ärvd från Image)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Fyller i en SerializationInfo med de data som behövs för att serialisera målobjektet.

(Ärvd från Image)

Gäller för