Nyelv

Metafile Osztály

Definíció

Grafikus metafájlt definiál. A metafájlok olyan rekordokat tartalmaznak, amelyek olyan grafikus műveletek sorozatát írják le, amelyek rögzíthetők (létrehozhatók) és lejátszhatók (megjeleníthetők). Ez az osztály nem örökölhető.

public ref class Metafile sealed : System::Drawing::Image
[System.Serializable]
public sealed class Metafile : System.Drawing.Image
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class Metafile : System.Drawing.Image
public sealed class Metafile : System.Drawing.Image
[<System.Serializable>]
type Metafile = class
    inherit Image
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(false)>]
type Metafile = class
    inherit Image
type Metafile = class
    inherit Image
Public NotInheritable Class Metafile
Inherits Image
Öröklődés
Attribútumok

Példák

Az alábbi példakód bemutatja, hogyan hozhat létre és használhatja a metódust MetafilePlayRecord .


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

Megjegyzések

Ha a Save metódussal ment egy grafikus képet Windows Metafile Format (WMF) vagy Enhanced Metafile Format (EMF) fájlként, az eredményül kapott fájl hordozható hálózati grafikus (PNG) fájlként lesz mentve. Ez a viselkedés azért fordul elő, mert a .NET-keretrendszer GDI+ összetevőjének nincs kódolója, amellyel fájlokat menthet .wmf vagy .emf fájlokként.

Note

A .NET 6-os és újabb verzióiban az ilyen típusú System.Drawing.Common csomag csak Windows operációs rendszereken támogatott. Az ilyen típusú alkalmazások platformfüggetlen használata fordítási időt jelző figyelmeztetéseket és futásidejű kivételeket okoz. További információ: System.Drawing.Common csak Windows rendszeren támogatott.

Konstruktorok

Name Description
Metafile(IntPtr, Boolean)

Inicializálja az osztály új példányát Metafile a megadott leíróból.

Metafile(IntPtr, EmfType, String)

Inicializálja az osztály új példányát a Metafile megadott leíróból egy eszközkörnyezetbe, és egy számbavételt EmfType , amely meghatározza a Metafileformátumot. A fájl elnevezéséhez megadható egy sztring.

Metafile(IntPtr, EmfType)

Inicializálja az osztály új példányát a Metafile megadott leíróból egy eszközkörnyezetbe, és egy számbavételt EmfType , amely meghatározza a Metafileformátumot.

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

Inicializálja az Metafile osztály új példányát a megadott eszközkörnyezetből, a megadott mértékegységet használó téglalap és a EmfType formátumot Metafilemeghatározó enumerálás által határolt. A fájl elnevezéséhez megadható egy sztring.

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType)

Inicializálja az Metafile osztály új példányát a megadott eszközkörnyezetből, a megadott mértékegységet használó téglalap és a EmfType formátumot Metafilemeghatározó enumerálás által határolt.

Metafile(IntPtr, Rectangle, MetafileFrameUnit)

Inicializálja az osztály új példányát a Metafile megadott eszközkörnyezetből, a megadott mértékegységet használó téglalap határolja.

Metafile(IntPtr, Rectangle)

Inicializálja az osztály új példányát a Metafile megadott eszközkörnyezetből, a megadott téglalap határolja.

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

Inicializálja az Metafile osztály új példányát a megadott eszközkörnyezetből, a megadott mértékegységet használó téglalap és a EmfType formátumot Metafilemeghatározó enumerálás által határolt. A fájl elnevezéséhez megadható egy sztring.

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType)

Inicializálja az Metafile osztály új példányát a megadott eszközkörnyezetből, a megadott mértékegységet használó téglalap és a EmfType formátumot Metafilemeghatározó enumerálás által határolt.

Metafile(IntPtr, RectangleF, MetafileFrameUnit)

Inicializálja az osztály új példányát a Metafile megadott eszközkörnyezetből, a megadott mértékegységet használó téglalap határolja.

Metafile(IntPtr, RectangleF)

Inicializálja az osztály új példányát a Metafile megadott eszközkörnyezetből, a megadott téglalap határolja.

Metafile(IntPtr, WmfPlaceableFileHeader, Boolean)

Inicializálja az osztály új példányát a Metafile megadott leíróból és egy WmfPlaceableFileHeader. A paraméter a deleteWmf metafájl törlésekor a leíró törlésére is használható.

Metafile(IntPtr, WmfPlaceableFileHeader)

Inicializálja az osztály új példányát a Metafile megadott leíróból és egy WmfPlaceableFileHeader.

Metafile(Stream, IntPtr, EmfType, String)

Inicializálja a Metafile osztály új példányát a megadott adatfolyamból, egy Windows leírót egy eszközkörnyezetbe, valamint egy EmfType enumerálást, amely meghatározza a Metafile formátumát. Emellett hozzáadhat egy sztringet is, amely az új Metafile leíró nevét tartalmazza.

Metafile(Stream, IntPtr, EmfType)

Inicializálja a Metafile osztály új példányát a megadott adatfolyamból, egy Windows leírót egy eszközkörnyezetbe, valamint egy EmfType enumerálást, amely meghatározza a Metafile formátumát.

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

Inicializálja a Metafile osztály új példányát a megadott adatfolyamból, egy Windows leíró egy eszközkörnyezethez, egy Rectangle struktúra, amely az új Metafile, a megadott mértékegységet, valamint a EmfType formátumát meghatározó Metafile enumerálást jelöli. Hozzáadhat egy sztringet, amely az új Metafile leíró nevét tartalmazza.

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

Inicializálja a Metafile osztály új példányát a megadott adatfolyamból, egy Windows leíró egy eszközkörnyezethez, egy Rectangle struktúra, amely az új Metafile, a megadott mértékegységet, valamint a EmfType formátumát meghatározó Metafile enumerálást jelöli.

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit)

Inicializálja a Metafile osztály új példányát a megadott adatfolyamból, egy Windows leírót egy eszközkörnyezetbe, egy Rectangle struktúrát, amely az új Metafile határolt téglalapot és a megadott mértékegységet jelöli.

Metafile(Stream, IntPtr, Rectangle)

Inicializálja a Metafile osztály új példányát a megadott adatfolyamból, egy Windows leírót egy eszközkörnyezetbe, valamint egy Rectangle struktúrát, amely az új Metafile téglalapot jelöli.

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

Inicializálja a Metafile osztály új példányát a megadott adatfolyamból, egy Windows leíró egy eszközkörnyezethez, egy RectangleF struktúra, amely az új Metafile, a megadott mértékegységet, valamint a EmfType formátumát meghatározó Metafile enumerálást jelöli. Hozzáadhat egy sztringet, amely az új Metafile leíró nevét tartalmazza.

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

Inicializálja a Metafile osztály új példányát a megadott adatfolyamból, egy Windows leíró egy eszközkörnyezethez, egy RectangleF struktúra, amely az új Metafile, a megadott mértékegységet, valamint a EmfType formátumát meghatározó Metafile enumerálást jelöli.

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit)

Inicializálja a Metafile osztály új példányát a megadott adatfolyamból, egy Windows leírót egy eszközkörnyezetbe, egy RectangleF struktúrát, amely az új Metafile határolt téglalapot és a megadott mértékegységet jelöli.

Metafile(Stream, IntPtr, RectangleF)

Inicializálja a Metafile osztály új példányát a megadott adatfolyamból, egy Windows leírót egy eszközkörnyezetbe, valamint egy RectangleF struktúrát, amely az új Metafile téglalapot jelöli.

Metafile(Stream, IntPtr)

Inicializálja az Metafile osztály új példányát a megadott adatfolyamból.

Metafile(Stream)

Inicializálja az Metafile osztály új példányát a megadott adatfolyamból.

Metafile(String, IntPtr, EmfType, String)

Inicializálja a Metafile osztály új példányát a megadott fájlnévvel, egy Windows leírót egy eszközkörnyezethez, valamint egy EmfType enumerálást, amely meghatározza a Metafile formátumát. Egy leíró sztring is hozzáadható.

Metafile(String, IntPtr, EmfType)

Inicializálja a Metafile osztály új példányát a megadott fájlnévvel, egy Windows leírót egy eszközkörnyezethez, valamint egy EmfType enumerálást, amely meghatározza a Metafile formátumát.

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

Inicializálja a Metafile osztály új példányát a megadott fájlnévvel, egy Windows leíró egy eszközkörnyezethez, egy Rectangle struktúra, amely az új Metafile, a megadott mértékegységet és egy EmfType enumerálást jelöl, amely a Metafile formátumát határozza meg. Egy leíró sztring is hozzáadható.

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

Inicializálja a Metafile osztály új példányát a megadott fájlnévvel, egy Windows leíró egy eszközkörnyezethez, egy Rectangle struktúra, amely az új Metafile, a megadott mértékegységet és egy EmfType enumerálást jelöl, amely a Metafile formátumát határozza meg.

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

Inicializálja a Metafile osztály új példányát a megadott fájlnévvel, egy Windows leírót egy eszközkörnyezethez, egy Rectangle szerkezetet, amely az új Metafile határát képező téglalapot és a megadott mértékegységet jelöli. Egy leíró sztring is hozzáadható.

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit)

Inicializálja a Metafile osztály új példányát a megadott fájlnévvel, egy Windows leírót egy eszközkörnyezethez, egy Rectangle szerkezetet, amely az új Metafile határát képező téglalapot és a megadott mértékegységet jelöli.

Metafile(String, IntPtr, Rectangle)

Inicializálja a Metafile osztály új példányát a megadott fájlnévvel, egy Windows leírót egy eszközkörnyezethez, valamint egy Rectangle struktúrát, amely az új Metafile téglalapot jelöli.

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

Inicializálja a Metafile osztály új példányát a megadott fájlnévvel, egy Windows leíró egy eszközkörnyezethez, egy RectangleF struktúra, amely az új Metafile, a megadott mértékegységet és egy EmfType enumerálást jelöl, amely a Metafile formátumát határozza meg. Egy leíró sztring is hozzáadható.

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

Inicializálja a Metafile osztály új példányát a megadott fájlnévvel, egy Windows leíró egy eszközkörnyezethez, egy RectangleF struktúra, amely az új Metafile, a megadott mértékegységet és egy EmfType enumerálást jelöl, amely a Metafile formátumát határozza meg.

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

Inicializálja a Metafile osztály új példányát a megadott fájlnévvel, egy Windows leírót egy eszközkörnyezethez, egy RectangleF szerkezetet, amely az új Metafile határát képező téglalapot és a megadott mértékegységet jelöli. Egy leíró sztring is hozzáadható.

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit)

Inicializálja a Metafile osztály új példányát a megadott fájlnévvel, egy Windows leírót egy eszközkörnyezethez, egy RectangleF szerkezetet, amely az új Metafile határát képező téglalapot és a megadott mértékegységet jelöli.

Metafile(String, IntPtr, RectangleF)

Inicializálja a Metafile osztály új példányát a megadott fájlnévvel, egy Windows leírót egy eszközkörnyezethez, valamint egy RectangleF struktúrát, amely az új Metafile téglalapot jelöli.

Metafile(String, IntPtr)

Inicializálja az osztály új példányát Metafile a megadott fájlnévvel.

Metafile(String)

Inicializálja az Metafile osztály új példányát a megadott fájlnévből.

Tulajdonságok

Name Description
Flags

Lekéri a képpontadatok attribútumjelölőit.Image

(Öröklődés forrása Image)
FrameDimensionsList

Lekéri a képkockák dimenzióit ábrázoló grafikus GUID-tömböt.Image

(Öröklődés forrása Image)
Height

Ennek a magasságát képpontban Imageadja meg.

(Öröklődés forrása Image)
HorizontalResolution

Lekéri ennek a képpont/hüvelyk vízszintes felbontását Image.

(Öröklődés forrása Image)
Palette

Lekéri vagy beállítja az ehhez Imagehasznált színpalettát.

(Öröklődés forrása Image)
PhysicalDimension

Lekéri a kép szélességét és magasságát.

(Öröklődés forrása Image)
PixelFormat

Lekéri ennek a képpontformátumnak a formátumát Image.

(Öröklődés forrása Image)
PropertyIdList

Lekéri az ebben Imagea szakaszban tárolt tulajdonságelemek azonosítóit.

(Öröklődés forrása Image)
PropertyItems

Lekéri az ebben Imagea fájlban tárolt összes tulajdonságelemet (metaadat-elemet).

(Öröklődés forrása Image)
RawFormat

Lekéri ennek a fájlformátumnak a Imageformátumát.

(Öröklődés forrása Image)
Size

Lekéri a kép szélességét és magasságát képpontban.

(Öröklődés forrása Image)
Tag

Lekéri vagy beállít egy objektumot, amely további adatokat biztosít a képről.

(Öröklődés forrása Image)
VerticalResolution

Lekéri ennek a képpont/hüvelyk függőleges felbontását Image.

(Öröklődés forrása Image)
Width

Lekéri ennek a szélességét Imageképpontban.

(Öröklődés forrása Image)

Metódusok

Name Description
Clone()

Ennek a példánynak a pontos másolatát Imagehozza létre.

(Öröklődés forrása Image)
CreateObjRef(Type)

Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt.

(Öröklődés forrása MarshalByRefObject)
Dispose()

Felszabadítja a jelen témakör által használt összes erőforrást Image.

(Öröklődés forrása Image)
Dispose(Boolean)

Felszabadítja a felügyelt erőforrások által Image használt nem felügyelt erőforrásokat, és opcionálisan felszabadítja a felügyelt erőforrásokat.

(Öröklődés forrása Image)
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetBounds(GraphicsUnit)

Lekéri a kép határait a megadott egységben.

(Öröklődés forrása Image)
GetEncoderParameterList(Guid)

A megadott képkódoló által támogatott paraméterekkel kapcsolatos információkat adja vissza.

(Öröklődés forrása Image)
GetFrameCount(FrameDimension)

A megadott dimenzió kereteinek számát adja vissza.

(Öröklődés forrása Image)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetHenhmetafile()

Egy Windows fogópontot ad vissza egy továbbfejlesztett Metafile.

GetLifetimeService()
Elavult.

Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot.

(Öröklődés forrása MarshalByRefObject)
GetMetafileHeader()

MetafileHeader A társított értéket adja vissza.Metafile

GetMetafileHeader(IntPtr, WmfPlaceableFileHeader)

MetafileHeader A megadotthoz Metafiletársított értéket adja vissza.

GetMetafileHeader(IntPtr)

MetafileHeader A megadotthoz Metafiletársított értéket adja vissza.

GetMetafileHeader(Stream)

MetafileHeader A megadotthoz Metafiletársított értéket adja vissza.

GetMetafileHeader(String)

MetafileHeader A megadotthoz Metafiletársított értéket adja vissza.

GetPropertyItem(Int32)

A megadott tulajdonságelemet ebből a tulajdonságból szerzi be Image.

(Öröklődés forrása Image)
GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr)

Ehhez a miniatűrhöz ad vissza miniatűrt Image.

(Öröklődés forrása Image)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
InitializeLifetimeService()
Elavult.

Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához.

(Öröklődés forrása MarshalByRefObject)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
MemberwiseClone(Boolean)

Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre.

(Öröklődés forrása MarshalByRefObject)
PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[])

Egyéni metafájlrekordot játszik le.

RemovePropertyItem(Int32)

Eltávolítja a megadott tulajdonságelemet ebből a Imagetulajdonságból.

(Öröklődés forrása Image)
RotateFlip(RotateFlipType)

Elforgatja, tükrözi vagy elforgatja a elemet, és megfordítja a Imageelemet.

(Öröklődés forrása Image)
Save(Stream, ImageCodecInfo, EncoderParameters)

A rendszerképet a megadott streambe menti a megadott kódoló és képkódoló paraméterekkel.

(Öröklődés forrása Image)
Save(Stream, ImageFormat)

A rendszerképet a megadott formátumban menti a megadott streambe.

(Öröklődés forrása Image)
Save(String, ImageCodecInfo, EncoderParameters)

Ezt Image a megadott fájlba menti a megadott kódoló és képkódoló paraméterekkel.

(Öröklődés forrása Image)
Save(String, ImageFormat)

Ezt Image a fájlt a megadott formátumban menti a megadott fájlba.

(Öröklődés forrása Image)
Save(String)

Ezt Image menti a megadott fájlba vagy streambe.

(Öröklődés forrása Image)
SaveAdd(EncoderParameters)

Keret hozzáadása a metódushoz egy korábbi hívásban megadott fájlhoz vagy streamhez Save . Ezzel a módszerrel mentheti a kijelölt kereteket egy több képkockás rendszerképből egy másik több képkockás képbe.

(Öröklődés forrása Image)
SaveAdd(Image, EncoderParameters)

Keret hozzáadása a metódushoz egy korábbi hívásban megadott fájlhoz vagy streamhez Save .

(Öröklődés forrása Image)
SelectActiveFrame(FrameDimension, Int32)

Kiválasztja a dimenzió és az index által megadott keretet.

(Öröklődés forrása Image)
SetPropertyItem(PropertyItem)

Ebben a fájlban Imageegy tulajdonságelemet (metaadatot) tárol.

(Öröklődés forrása Image)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

Name Description
ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Feltölti a SerializationInfo célobjektum szerializálásához szükséges adatokat.

(Öröklődés forrása Image)

A következőre érvényes: