Metafile Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert eine Grafikmetadatei. Eine Metadatei enthält Datensätze, die eine Abfolge von Grafikvorgängen beschreiben, die aufgezeichnet (konstruiert) und wiedergegeben werden können (angezeigt). Diese Klasse ist nicht vererbbar.
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
- Vererbung
- Attribute
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie eine Metafile Methode erstellt und verwendet wird 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
Hinweise
Wenn Sie die methode Save verwenden, um ein Grafikbild stattdessen als Windows Metadateiformat (WMF) oder EMF-Datei (Enhanced Metafile Format) zu speichern, wird die resultierende Datei stattdessen als PNG-Datei (Portable Network Graphics) gespeichert. Dieses Verhalten tritt auf, da die GDI+-Komponente von .NET Framework keinen Encoder aufweist, mit dem Sie Dateien als WMF- oder .emf-Dateien speichern können.
Note
In .NET 6 und höheren Versionen wird das System.Drawing.Common-Paket, das diesen Typ enthält, nur unter Windows-Betriebssystemen unterstützt. Die Verwendung dieses Typs in plattformübergreifenden Apps führt zu Kompilierungszeitwarnungen und Laufzeit-Ausnahmen. Weitere Informationen finden Sie unter System.Drawing.Common wird nur unter Windows unterstützt.
Konstruktoren
| Name | Beschreibung |
|---|---|
| Metafile(IntPtr, Boolean) |
Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Handle. |
| Metafile(IntPtr, EmfType, String) |
Initialisiert eine neue Instanz der Metafile Klasse vom angegebenen Handle in einen Gerätekontext und eine EmfType Aufzählung, die das Format der Metafile. Eine Zeichenfolge kann angegeben werden, um die Datei zu benennen. |
| Metafile(IntPtr, EmfType) |
Initialisiert eine neue Instanz der Metafile Klasse vom angegebenen Handle in einen Gerätekontext und eine EmfType Aufzählung, die das Format der Metafile. |
| Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) |
Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, gebunden durch das angegebene Rechteck, das die angegebene Maßeinheit verwendet, und eine EmfType Aufzählung, die das Format der Metafile. Eine Zeichenfolge kann zum Benennen der Datei bereitgestellt werden. |
| Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, gebunden durch das angegebene Rechteck, das die angegebene Maßeinheit verwendet, und eine EmfType Aufzählung, die das Format der Metafile. |
| Metafile(IntPtr, Rectangle, MetafileFrameUnit) |
Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, die an das angegebene Rechteck gebunden ist, das die angegebene Maßeinheit verwendet. |
| Metafile(IntPtr, Rectangle) |
Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, die durch das angegebene Rechteck begrenzt ist. |
| Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, gebunden durch das angegebene Rechteck, das die angegebene Maßeinheit verwendet, und eine EmfType Aufzählung, die das Format der Metafile. Eine Zeichenfolge kann zum Benennen der Datei bereitgestellt werden. |
| Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, gebunden durch das angegebene Rechteck, das die angegebene Maßeinheit verwendet, und eine EmfType Aufzählung, die das Format der Metafile. |
| Metafile(IntPtr, RectangleF, MetafileFrameUnit) |
Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, die an das angegebene Rechteck gebunden ist, das die angegebene Maßeinheit verwendet. |
| Metafile(IntPtr, RectangleF) |
Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Gerätekontext, die durch das angegebene Rechteck begrenzt ist. |
| Metafile(IntPtr, WmfPlaceableFileHeader, Boolean) |
Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Handle und einem WmfPlaceableFileHeader. Außerdem kann der |
| Metafile(IntPtr, WmfPlaceableFileHeader) |
Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Handle und einem WmfPlaceableFileHeader. |
| Metafile(Stream, IntPtr, EmfType, String) |
Initialisiert eine neue Instanz der Metafile-Klasse aus dem angegebenen Datenstrom, ein Windows Handle für einen Gerätekontext und eine EmfType-Aufzählung, die das Format der Metafile angibt. Außerdem kann eine Zeichenfolge, die einen beschreibenden Namen für das neue Metafile enthält, hinzugefügt werden. |
| Metafile(Stream, IntPtr, EmfType) |
Initialisiert eine neue Instanz der Metafile-Klasse aus dem angegebenen Datenstrom, ein Windows Handle für einen Gerätekontext und eine EmfType-Aufzählung, die das Format der Metafile angibt. |
| Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) |
Initialisiert eine neue Instanz der klasse Metafile aus dem angegebenen Datenstrom, ein 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. Eine Zeichenfolge, die einen beschreibenden Namen für das neue Metafile enthält, kann hinzugefügt werden. |
| Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Initialisiert eine neue Instanz der klasse Metafile aus dem angegebenen Datenstrom, ein 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) |
Initialisiert eine neue Instanz der Metafile-Klasse aus dem angegebenen Datenstrom, ein Windows Handle zu einem Gerätekontext, eine Rectangle-Struktur, die das Rechteck darstellt, das das neue Metafile und die angegebene Maßeinheit begrenzt. |
| Metafile(Stream, IntPtr, Rectangle) |
Initialisiert eine neue Instanz der Metafile-Klasse aus dem angegebenen Datenstrom, ein Windows Handle für einen Gerätekontext und eine Rectangle-Struktur, die das rechteck darstellt, das den neuen Metafile begrenzt. |
| Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Initialisiert eine neue Instanz der klasse Metafile aus dem angegebenen Datenstrom, ein 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. Eine Zeichenfolge, die einen beschreibenden Namen für das neue Metafile enthält, kann hinzugefügt werden. |
| Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Initialisiert eine neue Instanz der klasse Metafile aus dem angegebenen Datenstrom, ein 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) |
Initialisiert eine neue Instanz der Metafile-Klasse aus dem angegebenen Datenstrom, ein Windows Handle zu einem Gerätekontext, eine RectangleF-Struktur, die das Rechteck darstellt, das das neue Metafile und die angegebene Maßeinheit begrenzt. |
| Metafile(Stream, IntPtr, RectangleF) |
Initialisiert eine neue Instanz der Metafile-Klasse aus dem angegebenen Datenstrom, ein Windows Handle für einen Gerätekontext und eine RectangleF-Struktur, die das rechteck darstellt, das den neuen Metafile begrenzt. |
| Metafile(Stream, IntPtr) |
Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Datenstrom. |
| Metafile(Stream) |
Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Datenstrom. |
| Metafile(String, IntPtr, EmfType, String) |
Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext und einer EmfType Enumeration, die das Format der Metafile angibt. Eine beschreibende Zeichenfolge kann ebenfalls hinzugefügt werden. |
| Metafile(String, IntPtr, EmfType) |
Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext und einer EmfType Enumeration, die das Format der Metafile angibt. |
| Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) |
Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, ein 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. Eine beschreibende Zeichenfolge kann auch hinzugefügt werden. |
| Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, ein 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(String, IntPtr, Rectangle, MetafileFrameUnit, String) |
Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext, einer Rectangle-Struktur, die das Rechteck darstellt, das die neue Metafile und die angegebene Maßeinheit begrenzt. Eine beschreibende Zeichenfolge kann auch hinzugefügt werden. |
| Metafile(String, IntPtr, Rectangle, MetafileFrameUnit) |
Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext, einer Rectangle-Struktur, die das Rechteck darstellt, das die neue Metafile und die angegebene Maßeinheit begrenzt. |
| Metafile(String, IntPtr, Rectangle) |
Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext und einer Rectangle-Struktur, die das Rechteck darstellt, das den neuen Metafile begrenzt. |
| Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, ein 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. Eine beschreibende Zeichenfolge kann auch hinzugefügt werden. |
| Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, ein 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, String) |
Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext, einer RectangleF-Struktur, die das Rechteck darstellt, das die neue Metafile und die angegebene Maßeinheit begrenzt. Eine beschreibende Zeichenfolge kann auch hinzugefügt werden. |
| Metafile(String, IntPtr, RectangleF, MetafileFrameUnit) |
Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext, einer RectangleF-Struktur, die das Rechteck darstellt, das die neue Metafile und die angegebene Maßeinheit begrenzt. |
| Metafile(String, IntPtr, RectangleF) |
Initialisiert eine neue Instanz der klasse Metafile mit dem angegebenen Dateinamen, einem Windows Handle für einen Gerätekontext und einer RectangleF-Struktur, die das Rechteck darstellt, das den neuen Metafile begrenzt. |
| Metafile(String, IntPtr) |
Initialisiert eine neue Instanz der Metafile Klasse mit dem angegebenen Dateinamen. |
| Metafile(String) |
Initialisiert eine neue Instanz der Metafile Klasse aus dem angegebenen Dateinamen. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Flags |
Ruft Attributkennzeichnungen für die Pixeldaten dieser Image. (Geerbt von Image) |
| FrameDimensionsList |
Ruft ein Array von GUIDs ab, die die Dimensionen von Frames in dieser Image. (Geerbt von Image) |
| Height |
Ruft die Höhe in Pixel dieser Image. (Geerbt von Image) |
| HorizontalResolution |
Ruft die horizontale Auflösung in Pixel pro Zoll von diesem Imageab. (Geerbt von Image) |
| Palette |
Dient zum Abrufen oder Festlegen der Farbpalette, die für diesen ImageBereich verwendet wird. (Geerbt von Image) |
| PhysicalDimension |
Ruft die Breite und Höhe dieses Bilds ab. (Geerbt von Image) |
| PixelFormat |
Ruft das Pixelformat für diese Imageab. (Geerbt von Image) |
| PropertyIdList |
Ruft IDs der In diesem Imagegespeicherten Eigenschaftselemente ab. (Geerbt von Image) |
| PropertyItems |
Ruft alle Eigenschaftselemente (Teile von Metadaten) ab, die in diesem Imagegespeichert sind. (Geerbt von Image) |
| RawFormat |
Ruft das Dateiformat dieses Image. (Geerbt von Image) |
| Size |
Ruft die Breite und Höhe in Pixel dieses Bilds ab. (Geerbt von Image) |
| Tag |
Dient zum Abrufen oder Festlegen eines Objekts, das zusätzliche Daten zum Bild bereitstellt. (Geerbt von Image) |
| VerticalResolution |
Ruft die vertikale Auflösung in Pixel pro Zoll von diesem Imageab. (Geerbt von Image) |
| Width |
Ruft die Breite in Pixeln dieses ImageAb. (Geerbt von Image) |
Methoden
| Name | Beschreibung |
|---|---|
| Clone() |
Erstellt eine genaue Kopie dieses ImageElements. (Geerbt von Image) |
| CreateObjRef(Type) |
Erstellt ein Objekt, das alle relevanten Informationen enthält, die zum Generieren eines Proxys erforderlich sind, der für die Kommunikation mit einem Remoteobjekt verwendet wird. (Geerbt von MarshalByRefObject) |
| Dispose() |
Gibt alle von diesem ImageRessourcen verwendeten Ressourcen frei. (Geerbt von Image) |
| Dispose(Boolean) |
Gibt die nicht verwalteten Ressourcen frei, die von den Image verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei. (Geerbt von Image) |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
| GetBounds(GraphicsUnit) |
Ruft die Grenzen des Bilds in der angegebenen Einheit ab. (Geerbt von Image) |
| GetEncoderParameterList(Guid) |
Gibt Informationen zu den Parametern zurück, die vom angegebenen Bildgeber unterstützt werden. (Geerbt von Image) |
| GetFrameCount(FrameDimension) |
Gibt die Anzahl der Frames der angegebenen Dimension zurück. (Geerbt von Image) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetHenhmetafile() |
Gibt einen Windows Handle an einen erweiterten Metafile zurück. |
| GetLifetimeService() |
Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinie für diese Instanz steuert. (Geerbt von MarshalByRefObject) |
| GetMetafileHeader() |
Gibt den MetafileHeader zugeordneten Wert zurück Metafile. |
| GetMetafileHeader(IntPtr, WmfPlaceableFileHeader) |
Gibt die MetafileHeader dem angegebenen Zugeordnete Metafilezurück. |
| GetMetafileHeader(IntPtr) |
Gibt die MetafileHeader dem angegebenen Zugeordnete Metafilezurück. |
| GetMetafileHeader(Stream) |
Gibt die MetafileHeader dem angegebenen Zugeordnete Metafilezurück. |
| GetMetafileHeader(String) |
Gibt die MetafileHeader dem angegebenen Zugeordnete Metafilezurück. |
| GetPropertyItem(Int32) |
Ruft das angegebene Eigenschaftselement von diesem Imageab. (Geerbt von Image) |
| GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr) |
Gibt eine Miniaturansicht für dieses ImageZurück. (Geerbt von Image) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| InitializeLifetimeService() |
Ruft ein Lebensdauerdienstobjekt ab, um die Lebensdauerrichtlinie für diese Instanz zu steuern. (Geerbt von MarshalByRefObject) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| MemberwiseClone(Boolean) |
Erstellt eine flache Kopie des aktuellen MarshalByRefObject Objekts. (Geerbt von MarshalByRefObject) |
| PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[]) |
Gibt einen einzelnen Metadateidatensatz wieder. |
| RemovePropertyItem(Int32) |
Entfernt das angegebene Eigenschaftselement aus diesem Image. (Geerbt von Image) |
| RotateFlip(RotateFlipType) |
Dreht, kippt oder dreht und kippt die Image. (Geerbt von Image) |
| Save(Stream, ImageCodecInfo, EncoderParameters) |
Speichert dieses Bild im angegebenen Datenstrom mit den angegebenen Encoder- und Bildgeberparametern. (Geerbt von Image) |
| Save(Stream, ImageFormat) |
Speichert dieses Bild im angegebenen Format im angegebenen Format. (Geerbt von Image) |
| Save(String, ImageCodecInfo, EncoderParameters) |
Speichert dies Image in der angegebenen Datei mit den angegebenen Encoder- und Bild-Encoder-Parametern. (Geerbt von Image) |
| Save(String, ImageFormat) |
Speichert dies Image in der angegebenen Datei im angegebenen Format. (Geerbt von Image) |
| Save(String) |
Speichert dies Image in der angegebenen Datei oder dem angegebenen Datenstrom. (Geerbt von Image) |
| SaveAdd(EncoderParameters) |
Fügt eine Frame zu der Datei oder dem Datenstrom hinzu, die in einem vorherigen Aufruf der Save Methode angegeben wurde. Verwenden Sie diese Methode, um ausgewählte Frames aus einem Mehrrahmenbild in einem anderen Bild mit mehreren Frames zu speichern. (Geerbt von Image) |
| SaveAdd(Image, EncoderParameters) |
Fügt eine Frame zu der Datei oder dem Datenstrom hinzu, die in einem vorherigen Aufruf der Save Methode angegeben wurde. (Geerbt von Image) |
| SelectActiveFrame(FrameDimension, Int32) |
Wählt den rahmen aus, der durch die Dimension und den Index angegeben ist. (Geerbt von Image) |
| SetPropertyItem(PropertyItem) |
Speichert ein Eigenschaftselement (Metadatenelement) in diesem ImageElement. (Geerbt von Image) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Füllt eine SerializationInfo mit den Daten auf, die zum Serialisieren des Zielobjekts erforderlich sind. (Geerbt von Image) |