Metafile Klasa

Definicja

Definiuje metaplik graficzny. Metaplik zawiera rekordy opisujące sekwencję operacji graficznych, które mogą być rejestrowane (konstruowane) i odtwarzane (wyświetlane). Ta klasa nie jest dziedziczona.

public ref class Metafile sealed : System::Drawing::Image
public sealed class Metafile : 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
type Metafile = class
    inherit 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
Dziedziczenie
Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano, jak utworzyć metodę Metafile i użyć jej 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

Uwagi

Jeśli używasz Save metody do zapisywania obrazu graficznego jako pliku Windows Metafile Format (WMF) lub enhanced Metafile Format (EMF), wynikowy plik jest zapisywany jako plik Portable Network Graphics (PNG). To zachowanie występuje, ponieważ składnik GDI+ .NET Framework nie ma kodera, którego można użyć do zapisywania plików jako plików wmf lub emf.

Uwaga

W programie .NET 6 i nowszych wersjach pakiet System.Drawing.Common,który zawiera ten typ, jest obsługiwany tylko w Windows operacyjnych. Użycie tego typu w aplikacjach międzyplatformowych powoduje ostrzeżenia w czasie kompilacji i wyjątki czasu uruchamiania. Aby uzyskać więcej informacji, zobacz System.Drawing.Common obsługiwane tylko na Windows.

Konstruktory

Metafile(IntPtr, Boolean)

Inicjuje Metafile nowe wystąpienie klasy z określonego dojścia.

Metafile(IntPtr, EmfType)

Inicjuje nowe wystąpienie Metafile klasy z określonego dojścia do kontekstu urządzenia i EmfType wyliczenie określające format .Metafile

Metafile(IntPtr, EmfType, String)

Inicjuje nowe wystąpienie Metafile klasy z określonego dojścia do kontekstu urządzenia i EmfType wyliczenie określające format .Metafile Ciąg można podać, aby nazwać plik.

Metafile(IntPtr, Rectangle)

Inicjuje Metafile nowe wystąpienie klasy z określonego kontekstu urządzenia, ograniczone przez określony prostokąt.

Metafile(IntPtr, Rectangle, MetafileFrameUnit)

Inicjuje nowe wystąpienie Metafile klasy z określonego kontekstu urządzenia, ograniczone przez określony prostokąt, który używa podanej jednostki miary.

Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType)

Inicjuje nowe wystąpienie Metafile klasy z określonego kontekstu urządzenia, ograniczone przez określony prostokąt, który używa podanej jednostki miary, oraz EmfType wyliczenie określające format .Metafile

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

Inicjuje nowe wystąpienie Metafile klasy z określonego kontekstu urządzenia, ograniczone przez określony prostokąt, który używa podanej jednostki miary, oraz EmfType wyliczenie określające format Metafileelementu . Można podać ciąg w celu nadania nazwy pliku.

Metafile(IntPtr, RectangleF)

Inicjuje Metafile nowe wystąpienie klasy z określonego kontekstu urządzenia, ograniczone przez określony prostokąt.

Metafile(IntPtr, RectangleF, MetafileFrameUnit)

Inicjuje nowe wystąpienie Metafile klasy z określonego kontekstu urządzenia, ograniczone przez określony prostokąt, który używa podanej jednostki miary.

Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType)

Inicjuje nowe wystąpienie Metafile klasy z określonego kontekstu urządzenia, ograniczone przez określony prostokąt, który używa podanej jednostki miary, oraz EmfType wyliczenie określające format .Metafile

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

Inicjuje nowe wystąpienie Metafile klasy z określonego kontekstu urządzenia, ograniczone przez określony prostokąt, który używa podanej jednostki miary, oraz EmfType wyliczenie określające format Metafileelementu . Można podać ciąg w celu nadania nazwy pliku.

Metafile(IntPtr, WmfPlaceableFileHeader)

Inicjuje Metafile nowe wystąpienie klasy z określonego dojścia i klasy WmfPlaceableFileHeader.

Metafile(IntPtr, WmfPlaceableFileHeader, Boolean)

Inicjuje Metafile nowe wystąpienie klasy z określonego dojścia i klasy WmfPlaceableFileHeader. deleteWmf Ponadto parametr może służyć do usuwania dojścia po usunięciu metapliku.

Metafile(Stream)

Inicjuje Metafile nowe wystąpienie klasy z określonego strumienia danych.

Metafile(Stream, IntPtr)

Inicjuje Metafile nowe wystąpienie klasy z określonego strumienia danych.

Metafile(Stream, IntPtr, EmfType)

Inicjuje nowe wystąpienie klasy z określonego Metafile strumienia danych, dojście Windows do kontekstu urządzenia i EmfType wyliczenie określające format .Metafile

Metafile(Stream, IntPtr, EmfType, String)

Inicjuje nowe wystąpienie klasy z określonego Metafile strumienia danych, dojście Windows do kontekstu urządzenia i EmfType wyliczenie określające format .Metafile Ponadto można dodać ciąg zawierający opisową nazwę nowego Metafile .

Metafile(Stream, IntPtr, Rectangle)

Inicjuje nowe wystąpienie klasy z określonego Metafile strumienia danych, dojście Windows do kontekstu urządzenia oraz Rectangle strukturę reprezentującą prostokąt powiązany z nowym Metafileelementem .

Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit)

Inicjuje nowe wystąpienie klasy z określonego Metafile strumienia danych, dojście Windows do kontekstu urządzenia, Rectangle strukturę reprezentującą prostokąt, który graniczy z nową Metafilejednostką miary.

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

Inicjuje nowe wystąpienie Metafile klasy z określonego strumienia danych, Windows dojścia do kontekstu urządzenia, Rectangle strukturę reprezentującą prostokąt, który wiąże nową Metafilejednostkę miary i EmfType wyliczenie określające format Metafile.

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

Inicjuje nowe wystąpienie Metafile klasy z określonego strumienia danych, Windows dojścia do kontekstu urządzenia, Rectangle strukturę reprezentującą prostokąt, który wiąże nową Metafilejednostkę miary i EmfType wyliczenie określające format Metafile. Można dodać ciąg zawierający opisową nazwę nowego Metafile .

Metafile(Stream, IntPtr, RectangleF)

Inicjuje nowe wystąpienie klasy z określonego Metafile strumienia danych, dojście Windows do kontekstu urządzenia oraz RectangleF strukturę reprezentującą prostokąt powiązany z nowym Metafileelementem .

Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit)

Inicjuje nowe wystąpienie Metafile klasy z określonego strumienia danych, uchwyt Windows do kontekstu urządzenia, RectangleF strukturę reprezentującą prostokąt, który graniczy z nową Metafilejednostką miary.

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

Inicjuje nowe wystąpienie Metafile klasy z określonego strumienia danych, Windows dojścia do kontekstu urządzenia, RectangleF strukturę reprezentującą prostokąt, który wiąże nową Metafilejednostkę miary i EmfType wyliczenie określające format Metafile.

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

Inicjuje nowe wystąpienie Metafile klasy z określonego strumienia danych, Windows dojścia do kontekstu urządzenia, RectangleF strukturę reprezentującą prostokąt, który wiąże nową Metafilejednostkę miary i EmfType wyliczenie określające format Metafile. Można dodać ciąg zawierający opisową nazwę nowego Metafile .

Metafile(String)

Inicjuje Metafile nowe wystąpienie klasy z określonej nazwy pliku.

Metafile(String, IntPtr)

Inicjuje Metafile nowe wystąpienie klasy o określonej nazwie pliku.

Metafile(String, IntPtr, EmfType)

Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, Windows dojściu do kontekstu urządzenia i EmfType wyliczenie określające format .Metafile

Metafile(String, IntPtr, EmfType, String)

Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, Windows dojściu do kontekstu urządzenia i EmfType wyliczenie określające format Metafileelementu . Można również dodać opisowy ciąg.

Metafile(String, IntPtr, Rectangle)

Inicjuje nowe wystąpienie Metafile klasy z określoną nazwą pliku, Windows dojściem do kontekstu urządzenia i strukturą Rectangle reprezentującą prostokąt, który jest powiązany z nowym Metafileelementem .

Metafile(String, IntPtr, Rectangle, MetafileFrameUnit)

Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, Windows dojściu do kontekstu urządzenia, Rectangle strukturę reprezentującą prostokąt, który graniczy z nową Metafilejednostką miary.

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

Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, Windows dojściu do kontekstu urządzenia, Rectangle strukturę reprezentującą prostokąt powiązany z nową Metafilejednostką miary oraz EmfType wyliczenie określające format Metafileklasy .

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

Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, Windows dojściu do kontekstu urządzenia, Rectangle strukturę reprezentującą prostokąt powiązany z nową Metafilejednostką miary oraz EmfType wyliczenie określające format Metafileklasy . Można również dodać ciąg opisowy.

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

Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, Windows dojściu do kontekstu urządzenia, Rectangle strukturę reprezentującą prostokąt, który graniczy z nową Metafilejednostką miary. Można również dodać ciąg opisowy.

Metafile(String, IntPtr, RectangleF)

Inicjuje nowe wystąpienie Metafile klasy z określoną nazwą pliku, Windows dojściem do kontekstu urządzenia i strukturą RectangleF reprezentującą prostokąt, który jest powiązany z nowym Metafileelementem .

Metafile(String, IntPtr, RectangleF, MetafileFrameUnit)

Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, Windows dojściu do kontekstu urządzenia, RectangleF strukturę reprezentującą prostokąt, który graniczy z nową Metafilejednostką miary.

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

Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, Windows dojściu do kontekstu urządzenia, RectangleF strukturę reprezentującą prostokąt powiązany z nową Metafilejednostką miary oraz EmfType wyliczenie określające format Metafileklasy .

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

Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, uchwyt Windows do kontekstu urządzenia, RectangleF strukturę reprezentującą prostokąt powiązany z nową Metafilejednostką miary oraz EmfType wyliczenie określające format Metafile. Można również dodać opisowy ciąg.

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

Inicjuje nowe wystąpienie Metafile klasy o określonej nazwie pliku, Windows dojściu do kontekstu urządzenia, RectangleF strukturę reprezentującą prostokąt, który graniczy z nową Metafilejednostką miary. Można również dodać ciąg opisowy.

Właściwości

Flags

Pobiera flagi atrybutów dla danych pikseli tego Imageelementu .

(Odziedziczone po Image)
FrameDimensionsList

Pobiera tablicę identyfikatorów GUID reprezentujących wymiary ramek w tym Imageobiekcie .

(Odziedziczone po Image)
Height

Pobiera wysokość w pikselach tego Imageelementu .

(Odziedziczone po Image)
HorizontalResolution

Pobiera rozdzielczość poziomą w pikselach na cal tego Imageelementu .

(Odziedziczone po Image)
Palette

Pobiera lub ustawia paletę kolorów używaną dla tego Imageelementu .

(Odziedziczone po Image)
PhysicalDimension

Pobiera szerokość i wysokość tego obrazu.

(Odziedziczone po Image)
PixelFormat

Pobiera format pikseli dla tego Imagepliku .

(Odziedziczone po Image)
PropertyIdList

Pobiera identyfikatory elementów właściwości przechowywanych w tym Imageobiekcie .

(Odziedziczone po Image)
PropertyItems

Pobiera wszystkie elementy właściwości (elementy metadanych) przechowywane w tym Imagepliku .

(Odziedziczone po Image)
RawFormat

Pobiera format pliku tego Imagepliku .

(Odziedziczone po Image)
Size

Pobiera szerokość i wysokość obrazu w pikselach.

(Odziedziczone po Image)
Tag

Pobiera lub ustawia obiekt, który dostarcza dodatkowe dane dotyczące obrazu.

(Odziedziczone po Image)
VerticalResolution

Pobiera rozdzielczość pionową w pikselach na cal tego Imageelementu .

(Odziedziczone po Image)
Width

Pobiera szerokość w pikselach tego elementu Image.

(Odziedziczone po Image)

Metody

Clone()

Tworzy dokładną kopię tego elementu Image.

(Odziedziczone po Image)
CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
Dispose()

Zwalnia wszystkie zasoby używane przez ten Imageprogram .

(Odziedziczone po Image)
Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element Image i opcjonalnie zwalnia zasoby zarządzane.

(Odziedziczone po Image)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetBounds(GraphicsUnit)

Pobiera granice obrazu w określonej lekcji.

(Odziedziczone po Image)
GetEncoderParameterList(Guid)

Zwraca informacje o parametrach obsługiwanych przez określony koder obrazu.

(Odziedziczone po Image)
GetFrameCount(FrameDimension)

Zwraca liczbę ramek określonego wymiaru.

(Odziedziczone po Image)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetHenhmetafile()

Zwraca dojście Windows do rozszerzonego Metafileelementu .

GetLifetimeService()
Nieaktualne.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetMetafileHeader()

Zwraca element MetafileHeader skojarzony z tym Metafileelementem .

GetMetafileHeader(IntPtr)

Zwraca wartość MetafileHeader skojarzona z określonym Metafileelementem .

GetMetafileHeader(IntPtr, WmfPlaceableFileHeader)

Zwraca wartość MetafileHeader skojarzona z określonym Metafileelementem .

GetMetafileHeader(Stream)

Zwraca wartość MetafileHeader skojarzona z określonym Metafileelementem .

GetMetafileHeader(String)

Zwraca wartość MetafileHeader skojarzona z określonym Metafileelementem .

GetPropertyItem(Int32)

Pobiera określony element właściwości z tego Imageelementu .

(Odziedziczone po Image)
GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr)

Zwraca miniaturę dla tego .Image

(Odziedziczone po Image)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
InitializeLifetimeService()
Nieaktualne.

Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[])

Odtwarza pojedynczy rekord metapliku.

RemovePropertyItem(Int32)

Usuwa określony element właściwości z tego Imageelementu .

(Odziedziczone po Image)
RotateFlip(RotateFlipType)

Obraca, przerzuca lub obraca i odwraca obiekt Image.

(Odziedziczone po Image)
Save(Stream, ImageCodecInfo, EncoderParameters)

Zapisuje ten obraz w określonym strumieniu z określonymi parametrami kodera i kodera obrazu.

(Odziedziczone po Image)
Save(Stream, ImageFormat)

Zapisuje ten obraz w określonym strumieniu w określonym formacie.

(Odziedziczone po Image)
Save(String)

Zapisuje to Image w określonym pliku lub strumieniu.

(Odziedziczone po Image)
Save(String, ImageCodecInfo, EncoderParameters)

Zapisuje to Image w określonym pliku z określonymi parametrami kodera i kodera obrazu.

(Odziedziczone po Image)
Save(String, ImageFormat)

Zapisuje to Image w określonym pliku w określonym formacie.

(Odziedziczone po Image)
SaveAdd(EncoderParameters)

Dodaje ramkę do pliku lub strumienia określonego w poprzednim wywołaniu Save metody . Użyj tej metody, aby zapisać wybrane ramki z obrazu z wieloma ramkami do innego obrazu z wieloma ramkami.

(Odziedziczone po Image)
SaveAdd(Image, EncoderParameters)

Dodaje ramkę do pliku lub strumienia określonego w poprzednim wywołaniu Save metody .

(Odziedziczone po Image)
SelectActiveFrame(FrameDimension, Int32)

Wybiera ramkę określoną przez wymiar i indeks.

(Odziedziczone po Image)
SetPropertyItem(PropertyItem)

Przechowuje element właściwości (część metadanych) w tym obiekcie Image.

(Odziedziczone po Image)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

Wypełnia element SerializationInfo danymi potrzebnymi do serializacji obiektu docelowego.

(Odziedziczone po Image)

Dotyczy