Metafile Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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 |
| 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) |