Metafile Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Definisce un metafile grafico. Un metafile contiene record che descrivono una sequenza di operazioni grafiche che possono essere registrate (costruite) e riprodotte (visualizzate). Questa classe non è ereditabile.
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
- Ereditarietà
- Attributi
Esempio
Nell'esempio di codice seguente viene illustrato come creare un Metafile e usare il metodo 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
Commenti
Quando si utilizza il metodo Save per salvare un'immagine grafica come file WMF (Windows Metafile Format) o EMF (Enhanced Metafile Format), il file risultante viene salvato come file PNG (Portable Network Graphics). Questo comportamento si verifica perché il componente GDI+ di .NET Framework non dispone di un codificatore che è possibile usare per salvare i file come file wmf o .emf.
Nota
In .NET 6 e versioni successive il pacchetto System.Drawing.Common, che include questo tipo, è supportato solo nei sistemi operativi Windows. L'uso di questo tipo nelle app multipiattaforma causa avvisi in fase di compilazione ed eccezioni in fase di esecuzione. Per altre informazioni, vedere System.Drawing.Common supportato solo in Windows.
Costruttori
Metafile(IntPtr, Boolean) |
Inizializza una nuova istanza della classe Metafile dall'handle specificato. |
Metafile(IntPtr, EmfType, String) |
Inizializza una nuova istanza della classe Metafile dall'handle specificato a un contesto di dispositivo e un'enumerazione EmfType che specifica il formato del Metafile. È possibile specificare una stringa per denominare il file. |
Metafile(IntPtr, EmfType) |
Inizializza una nuova istanza della classe Metafile dall'handle specificato a un contesto di dispositivo e un'enumerazione EmfType che specifica il formato del Metafile. |
Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) |
Inizializza una nuova istanza della classe Metafile dal contesto di dispositivo specificato, delimitata dal rettangolo specificato che utilizza l'unità di misura fornita e un'enumerazione EmfType che specifica il formato del Metafile. È possibile specificare una stringa per denominare il file. |
Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Inizializza una nuova istanza della classe Metafile dal contesto di dispositivo specificato, delimitata dal rettangolo specificato che utilizza l'unità di misura fornita e un'enumerazione EmfType che specifica il formato del Metafile. |
Metafile(IntPtr, Rectangle, MetafileFrameUnit) |
Inizializza una nuova istanza della classe Metafile dal contesto di dispositivo specificato, delimitata dal rettangolo specificato che utilizza l'unità di misura fornita. |
Metafile(IntPtr, Rectangle) |
Inizializza una nuova istanza della classe Metafile dal contesto di dispositivo specificato, delimitata dal rettangolo specificato. |
Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Inizializza una nuova istanza della classe Metafile dal contesto di dispositivo specificato, delimitata dal rettangolo specificato che utilizza l'unità di misura fornita e un'enumerazione EmfType che specifica il formato del Metafile. È possibile specificare una stringa per denominare il file. |
Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Inizializza una nuova istanza della classe Metafile dal contesto di dispositivo specificato, delimitata dal rettangolo specificato che utilizza l'unità di misura fornita e un'enumerazione EmfType che specifica il formato del Metafile. |
Metafile(IntPtr, RectangleF, MetafileFrameUnit) |
Inizializza una nuova istanza della classe Metafile dal contesto di dispositivo specificato, delimitata dal rettangolo specificato che utilizza l'unità di misura fornita. |
Metafile(IntPtr, RectangleF) |
Inizializza una nuova istanza della classe Metafile dal contesto di dispositivo specificato, delimitata dal rettangolo specificato. |
Metafile(IntPtr, WmfPlaceableFileHeader, Boolean) |
Inizializza una nuova istanza della classe Metafile dall'handle specificato e un WmfPlaceableFileHeader. Inoltre, il parametro |
Metafile(IntPtr, WmfPlaceableFileHeader) |
Inizializza una nuova istanza della classe Metafile dall'handle specificato e un WmfPlaceableFileHeader. |
Metafile(Stream, IntPtr, EmfType, String) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle di Windows a un contesto di dispositivo e un'enumerazione EmfType che specifica il formato del Metafile. Inoltre, è possibile aggiungere una stringa contenente un nome descrittivo per il nuovo Metafile. |
Metafile(Stream, IntPtr, EmfType) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle di Windows a un contesto di dispositivo e un'enumerazione EmfType che specifica il formato del Metafile. |
Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle di Windows a un contesto di dispositivo, una struttura Rectangle che rappresenta il rettangolo che delimita il nuovo Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato del Metafile. È possibile aggiungere una stringa contenente un nome descrittivo per il nuovo Metafile. |
Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle di Windows a un contesto di dispositivo, una struttura Rectangle che rappresenta il rettangolo che delimita il nuovo Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato del Metafile. |
Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle di Windows a un contesto di dispositivo, una struttura Rectangle che rappresenta il rettangolo che delimita il nuovo Metafilee l'unità di misura fornita. |
Metafile(Stream, IntPtr, Rectangle) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle di Windows a un contesto di dispositivo e una struttura Rectangle che rappresenta il rettangolo che delimita il nuovo Metafile. |
Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle di Windows a un contesto di dispositivo, una struttura RectangleF che rappresenta il rettangolo che delimita il nuovo Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato del Metafile. È possibile aggiungere una stringa contenente un nome descrittivo per il nuovo Metafile. |
Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle di Windows a un contesto di dispositivo, una struttura RectangleF che rappresenta il rettangolo che delimita il nuovo Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato del Metafile. |
Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle di Windows a un contesto di dispositivo, una struttura RectangleF che rappresenta il rettangolo che delimita il nuovo Metafilee l'unità di misura fornita. |
Metafile(Stream, IntPtr, RectangleF) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle di Windows a un contesto di dispositivo e una struttura RectangleF che rappresenta il rettangolo che delimita il nuovo Metafile. |
Metafile(Stream, IntPtr) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato. |
Metafile(Stream) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato. |
Metafile(String, IntPtr, EmfType, String) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle di Windows in un contesto di dispositivo e un'enumerazione EmfType che specifica il formato del Metafile. È anche possibile aggiungere una stringa descrittiva. |
Metafile(String, IntPtr, EmfType) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle di Windows in un contesto di dispositivo e un'enumerazione EmfType che specifica il formato del Metafile. |
Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle di Windows in un contesto di dispositivo, una struttura Rectangle che rappresenta il rettangolo che delimita il nuovo Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato del Metafile. È anche possibile aggiungere una stringa descrittiva. |
Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle di Windows in un contesto di dispositivo, una struttura Rectangle che rappresenta il rettangolo che delimita il nuovo Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato del Metafile. |
Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, String) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle di Windows in un contesto di dispositivo, una struttura Rectangle che rappresenta il rettangolo che delimita il nuovo Metafilee l'unità di misura fornita. È anche possibile aggiungere una stringa descrittiva. |
Metafile(String, IntPtr, Rectangle, MetafileFrameUnit) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle di Windows in un contesto di dispositivo, una struttura Rectangle che rappresenta il rettangolo che delimita il nuovo Metafilee l'unità di misura fornita. |
Metafile(String, IntPtr, Rectangle) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle di Windows in un contesto di dispositivo e una struttura Rectangle che rappresenta il rettangolo che delimita il nuovo Metafile. |
Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle di Windows in un contesto di dispositivo, una struttura RectangleF che rappresenta il rettangolo che delimita il nuovo Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato del Metafile. È anche possibile aggiungere una stringa descrittiva. |
Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle di Windows in un contesto di dispositivo, una struttura RectangleF che rappresenta il rettangolo che delimita il nuovo Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato del Metafile. |
Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, String) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle di Windows in un contesto di dispositivo, una struttura RectangleF che rappresenta il rettangolo che delimita il nuovo Metafilee l'unità di misura fornita. È anche possibile aggiungere una stringa descrittiva. |
Metafile(String, IntPtr, RectangleF, MetafileFrameUnit) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle di Windows in un contesto di dispositivo, una struttura RectangleF che rappresenta il rettangolo che delimita il nuovo Metafilee l'unità di misura fornita. |
Metafile(String, IntPtr, RectangleF) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle di Windows in un contesto di dispositivo e una struttura RectangleF che rappresenta il rettangolo che delimita il nuovo Metafile. |
Metafile(String, IntPtr) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato. |
Metafile(String) |
Inizializza una nuova istanza della classe Metafile dal nome file specificato. |
Proprietà
Flags |
Ottiene i flag di attributo per i dati pixel di questo Image. (Ereditato da Image) |
FrameDimensionsList |
Ottiene una matrice di GUID che rappresentano le dimensioni dei fotogrammi all'interno di questo Image. (Ereditato da Image) |
Height |
Ottiene l'altezza, in pixel, di questa Image. (Ereditato da Image) |
HorizontalResolution |
Ottiene la risoluzione orizzontale, espressa in pixel per pollice, di questo Image. (Ereditato da Image) |
Palette |
Ottiene o imposta la tavolozza dei colori utilizzata per questo Image. (Ereditato da Image) |
PhysicalDimension |
Ottiene la larghezza e l'altezza dell'immagine. (Ereditato da Image) |
PixelFormat |
Ottiene il formato pixel per questo Image. (Ereditato da Image) |
PropertyIdList |
Ottiene gli ID degli elementi della proprietà archiviati in questo Image. (Ereditato da Image) |
PropertyItems |
Ottiene tutti gli elementi della proprietà (parti di metadati) archiviati in questo Image. (Ereditato da Image) |
RawFormat |
Ottiene il formato di file di questo Image. (Ereditato da Image) |
Size |
Ottiene la larghezza e l'altezza, in pixel, di questa immagine. (Ereditato da Image) |
Tag |
Ottiene o imposta un oggetto che fornisce dati aggiuntivi sull'immagine. (Ereditato da Image) |
VerticalResolution |
Ottiene la risoluzione verticale, espressa in pixel per pollice, di questo Image. (Ereditato da Image) |
Width |
Ottiene la larghezza, in pixel, di questo Image. (Ereditato da Image) |
Metodi
Clone() |
Crea una copia esatta di questo Image. (Ereditato da Image) |
CreateObjRef(Type) |
Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto. (Ereditato da MarshalByRefObject) |
Dispose() |
Rilascia tutte le risorse usate da questo Image. (Ereditato da Image) |
Dispose(Boolean) |
Rilascia le risorse non gestite usate dal Image e, facoltativamente, rilascia le risorse gestite. (Ereditato da Image) |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetBounds(GraphicsUnit) |
Ottiene i limiti dell'immagine nell'unità specificata. (Ereditato da Image) |
GetEncoderParameterList(Guid) |
Restituisce informazioni sui parametri supportati dal codificatore di immagini specificato. (Ereditato da Image) |
GetFrameCount(FrameDimension) |
Restituisce il numero di fotogrammi della dimensione specificata. (Ereditato da Image) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetHenhmetafile() |
Restituisce un handle di Windows a un Metafileavanzato. |
GetLifetimeService() |
Obsoleti.
Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza. (Ereditato da MarshalByRefObject) |
GetMetafileHeader() |
Restituisce il MetafileHeader associato a questo Metafile. |
GetMetafileHeader(IntPtr, WmfPlaceableFileHeader) |
Restituisce il MetafileHeader associato al Metafilespecificato. |
GetMetafileHeader(IntPtr) |
Restituisce il MetafileHeader associato al Metafilespecificato. |
GetMetafileHeader(Stream) |
Restituisce il MetafileHeader associato al Metafilespecificato. |
GetMetafileHeader(String) |
Restituisce il MetafileHeader associato al Metafilespecificato. |
GetPropertyItem(Int32) |
Ottiene l'elemento della proprietà specificato da questo Image. (Ereditato da Image) |
GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr) |
Restituisce un'anteprima per questo Image. (Ereditato da Image) |
GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
InitializeLifetimeService() |
Obsoleti.
Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza. (Ereditato da MarshalByRefObject) |
MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
MemberwiseClone(Boolean) |
Crea una copia superficiale dell'oggetto MarshalByRefObject corrente. (Ereditato da MarshalByRefObject) |
PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[]) |
Riproduce un singolo record metafile. |
RemovePropertyItem(Int32) |
Rimuove l'elemento della proprietà specificato da questo Image. (Ereditato da Image) |
RotateFlip(RotateFlipType) |
Ruota, capovolge o ruota e capovolge il Image. (Ereditato da Image) |
Save(Stream, ImageCodecInfo, EncoderParameters) |
Salva questa immagine nel flusso specificato, con i parametri del codificatore e del codificatore di immagini specificati. (Ereditato da Image) |
Save(Stream, ImageFormat) |
Salva questa immagine nel flusso specificato nel formato specificato. (Ereditato da Image) |
Save(String, ImageCodecInfo, EncoderParameters) |
Salva questo Image nel file specificato, con i parametri del codificatore e del codificatore di immagini specificati. (Ereditato da Image) |
Save(String, ImageFormat) |
Salva questo Image nel file specificato nel formato specificato. (Ereditato da Image) |
Save(String) |
Salva questo Image nel file o nel flusso specificato. (Ereditato da Image) |
SaveAdd(EncoderParameters) |
Aggiunge un frame al file o al flusso specificato in una chiamata precedente al metodo Save. Usare questo metodo per salvare i fotogrammi selezionati da un'immagine a più fotogrammi in un'altra immagine con più fotogrammi. (Ereditato da Image) |
SaveAdd(Image, EncoderParameters) |
Aggiunge un frame al file o al flusso specificato in una chiamata precedente al metodo Save. (Ereditato da Image) |
SelectActiveFrame(FrameDimension, Int32) |
Seleziona il frame specificato dalla dimensione e dall'indice. (Ereditato da Image) |
SetPropertyItem(PropertyItem) |
Archivia un elemento della proprietà (parte di metadati) in questo Image. (Ereditato da Image) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
ISerializable.GetObjectData(SerializationInfo, StreamingContext) |
Popola un SerializationInfo con i dati necessari per serializzare l'oggetto di destinazione. (Ereditato da Image) |