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. In un metafile sono contenuti record che descrivono una sequenza di operazioni grafiche che possono essere registrate (create) e riprodotte (visualizzate). La classe non è ereditabile.
public ref class Metafile sealed : System::Drawing::Image
public sealed class Metafile : 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
type Metafile = class
inherit Image
[<System.Serializable>]
type Metafile = class
inherit Image
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(false)>]
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 oggetto e usare il PlayRecord metodo .
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 usa il Save metodo per salvare un'immagine grafica come file WMF (Windows Metafile Format) o Enhanced Metafile Format (EMF), 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 con estensione 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 di runtime. 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) |
Inizializza una nuova istanza della classe Metafile dall'handle specificato per un contesto di periferica e un'enumerazione EmfType che specifica il formato dell'oggetto Metafile. |
Metafile(IntPtr, EmfType, String) |
Inizializza una nuova istanza della classe Metafile dall'handle specificato per un contesto di periferica e un'enumerazione EmfType che specifica il formato dell'oggetto Metafile. È possibile immettere una stringa per assegnare il nome del file. |
Metafile(IntPtr, Rectangle) |
Inizializza una nuova istanza della classe Metafile da un determinato contesto di periferica, delimitata dal rettangolo specificato. |
Metafile(IntPtr, Rectangle, MetafileFrameUnit) |
Inizializza una nuova istanza della classe Metafile da un determinato contesto di periferica, delimitata dal rettangolo specificato in cui vengono utilizzate le unità di misura fornite. |
Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Inizializza una nuova istanza della classe Metafile da un determinato contesto di periferica, delimitato dal rettangolo specificato in cui viene utilizzata l'unità di misura fornita, nonché da un'enumerazione EmfType che specifica il formato della classe Metafile. |
Metafile(IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) |
Inizializza una nuova istanza della classe Metafile da un determinato contesto di periferica, delimitato dal rettangolo specificato in cui viene utilizzata l'unità di misura fornita, nonché da un'enumerazione EmfType che specifica il formato della classe Metafile. È possibile immettere una stringa per assegnare il nome del file. |
Metafile(IntPtr, RectangleF) |
Inizializza una nuova istanza della classe Metafile da un determinato contesto di periferica, delimitata dal rettangolo specificato. |
Metafile(IntPtr, RectangleF, MetafileFrameUnit) |
Inizializza una nuova istanza della classe Metafile da un determinato contesto di periferica, delimitata dal rettangolo specificato in cui vengono utilizzate le unità di misura fornite. |
Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Inizializza una nuova istanza della classe Metafile da un determinato contesto di periferica, delimitato dal rettangolo specificato in cui viene utilizzata l'unità di misura fornita, nonché da un'enumerazione EmfType che specifica il formato della classe Metafile. |
Metafile(IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Inizializza una nuova istanza della classe Metafile da un determinato contesto di periferica, delimitato dal rettangolo specificato in cui viene utilizzata l'unità di misura fornita, nonché da un'enumerazione EmfType che specifica il formato della classe Metafile. È possibile immettere una stringa per assegnare il nome del file. |
Metafile(IntPtr, WmfPlaceableFileHeader) |
Inizializza una nuova istanza della classe Metafile dall'handle specificato e una classe WmfPlaceableFileHeader. |
Metafile(IntPtr, WmfPlaceableFileHeader, Boolean) |
Inizializza una nuova istanza della classe Metafile dall'handle specificato e una classe WmfPlaceableFileHeader. È inoltre possibile utilizzare il parametro |
Metafile(Stream) |
Inizializza una nuova istanza della classe Metafile dal flusso dei dati specificato. |
Metafile(Stream, IntPtr) |
Inizializza una nuova istanza della classe Metafile dal flusso dei dati specificato. |
Metafile(Stream, IntPtr, EmfType) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle Windows per un contesto di periferica e un'enumerazione EmfType che specifica il formato dell'oggetto Metafile. |
Metafile(Stream, IntPtr, EmfType, String) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle Windows per un contesto di periferica e un'enumerazione EmfType che specifica il formato dell'oggetto Metafile. È inoltre possibile aggiungere una stringa che contiene un nome descrittivo per il nuovo oggetto Metafile. |
Metafile(Stream, IntPtr, Rectangle) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle Windows per un contesto di periferica e una struttura Rectangle che rappresenta il rettangolo che delimita il nuovo oggetto Metafile. |
Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle Windows per un contesto di periferica e una struttura Rectangle che rappresenta il rettangolo che delimita il nuovo oggetto Metafile e l'unità di misura fornita. |
Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle Windows per un contesto di periferica, una struttura Rectangle che rappresenta il rettangolo che delimita la nuova classe Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato della classe Metafile. |
Metafile(Stream, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle Windows per un contesto di periferica, una struttura Rectangle che rappresenta il rettangolo che delimita la nuova classe Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato della classe Metafile. È possibile aggiungere una stringa contenente un nome descrittivo per il nuovo oggetto Metafile. |
Metafile(Stream, IntPtr, RectangleF) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle Windows per un contesto di periferica e una struttura RectangleF che rappresenta il rettangolo che delimita il nuovo oggetto Metafile. |
Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle Windows per un contesto di periferica e una struttura RectangleF che rappresenta il rettangolo che delimita il nuovo oggetto Metafile e l'unità di misura fornita. |
Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle Windows per un contesto di periferica, una struttura RectangleF che rappresenta il rettangolo che delimita la nuova classe Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato della classe Metafile. |
Metafile(Stream, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle Windows per un contesto di periferica, una struttura RectangleF che rappresenta il rettangolo che delimita la nuova classe Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato della classe Metafile. È possibile aggiungere una stringa contenente un nome descrittivo per il nuovo oggetto Metafile. |
Metafile(String) |
Inizializza una nuova istanza della classe Metafile dal nome file specificato. |
Metafile(String, IntPtr) |
Inizializza una nuova istanza della classe Metafile con il nome del file specificato. |
Metafile(String, IntPtr, EmfType) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle Windows per un contesto di periferica e un'enumerazione EmfType che specifica il formato dell'oggetto Metafile. |
Metafile(String, IntPtr, EmfType, String) |
Inizializza una nuova istanza della classe Metafile dal flusso di dati specificato, un handle Windows per un contesto di periferica e un'enumerazione EmfType che specifica il formato dell'oggetto Metafile. È anche possibile aggiungere una stringa descrittiva. |
Metafile(String, IntPtr, Rectangle) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle Windows per un contesto di periferica e una struttura Rectangle che rappresenta il rettangolo che delimita il nuovo oggetto Metafile. |
Metafile(String, IntPtr, Rectangle, MetafileFrameUnit) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle Windows per un contesto di periferica, una struttura Rectangle che rappresenta il rettangolo che delimita la nuova classe Metafile e l'unità di misura fornita. |
Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle Windows per un contesto di periferica, una struttura Rectangle che rappresenta il rettangolo che delimita la nuova classe Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato della classe Metafile. |
Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, EmfType, String) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle Windows per un contesto di periferica, una struttura Rectangle che rappresenta il rettangolo che delimita la nuova classe Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato della classe Metafile. È anche possibile aggiungere una stringa descrittiva. |
Metafile(String, IntPtr, Rectangle, MetafileFrameUnit, String) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle Windows per un contesto di periferica, una struttura Rectangle che rappresenta il rettangolo che delimita la nuova classe Metafile e l'unità di misura fornita. È anche possibile aggiungere una stringa descrittiva. |
Metafile(String, IntPtr, RectangleF) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle Windows per un contesto di periferica e una struttura RectangleF che rappresenta il rettangolo che delimita il nuovo oggetto Metafile. |
Metafile(String, IntPtr, RectangleF, MetafileFrameUnit) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle Windows per un contesto di periferica, una struttura RectangleF che rappresenta il rettangolo che delimita la nuova classe Metafile e l'unità di misura fornita. |
Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle Windows per un contesto di periferica, una struttura RectangleF che rappresenta il rettangolo che delimita la nuova classe Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato della classe Metafile. |
Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, EmfType, String) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle Windows per un contesto di periferica, una struttura RectangleF che rappresenta il rettangolo che delimita la nuova classe Metafile, l'unità di misura fornita e un'enumerazione EmfType che specifica il formato della classe Metafile. È anche possibile aggiungere una stringa descrittiva. |
Metafile(String, IntPtr, RectangleF, MetafileFrameUnit, String) |
Inizializza una nuova istanza della classe Metafile con il nome file specificato, un handle Windows per un contesto di periferica, una struttura RectangleF che rappresenta il rettangolo che delimita la nuova classe Metafile e l'unità di misura fornita. È anche possibile aggiungere una stringa descrittiva. |
Proprietà
Flags |
Ottiene i flag di attributi per i dati pixel di questo oggetto Image. (Ereditato da Image) |
FrameDimensionsList |
Ottiene una matrice di GUID che rappresentano le dimensioni dei fotogrammi all'interno di questo oggetto Image. (Ereditato da Image) |
Height |
Ottiene l'altezza in pixel di questo oggetto Image. (Ereditato da Image) |
HorizontalResolution |
Ottiene la risoluzione orizzontale in pixel per pollice di questo oggetto Image. (Ereditato da Image) |
Palette |
Ottiene o imposta la tavolozza dei colori usata per questo oggetto Image. (Ereditato da Image) |
PhysicalDimension |
Ottiene la larghezza e l'altezza di questa immagine. (Ereditato da Image) |
PixelFormat |
Ottiene il formato pixel per questo oggetto Image. (Ereditato da Image) |
PropertyIdList |
Ottiene gli ID degli elementi di proprietà archiviati in questo oggetto Image. (Ereditato da Image) |
PropertyItems |
Ottiene tutti gli elementi di proprietà (porzioni di metadati) archiviati in questo oggetto Image. (Ereditato da Image) |
RawFormat |
Ottiene il formato di file dell'oggetto Image. (Ereditato da Image) |
Size |
Ottiene la larghezza e l'altezza di questa immagine in pixel. (Ereditato da Image) |
Tag |
Ottiene o imposta un oggetto che fornisce dati aggiuntivi relativi all'immagine. (Ereditato da Image) |
VerticalResolution |
Ottiene la risoluzione verticale in pixel per pollice di questo oggetto Image. (Ereditato da Image) |
Width |
Ottiene la larghezza in pixel di questo oggetto Image. (Ereditato da Image) |
Metodi
Clone() |
Crea una copia esatta di questo Image. (Ereditato da Image) |
CreateObjRef(Type) |
Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto. (Ereditato da MarshalByRefObject) |
Dispose() |
Rilascia tutte le risorse usate da questa classe Image. (Ereditato da Image) |
Dispose(Boolean) |
Rilascia le risorse non gestite usate da Image e, facoltativamente, 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à di misura specificata. (Ereditato da Image) |
GetEncoderParameterList(Guid) |
Restituisce informazioni sui parametri supportati dal codificatore di immagini specificato. (Ereditato da Image) |
GetFrameCount(FrameDimension) |
Restituisce il numero dei fotogrammi della dimensione specificata. (Ereditato da Image) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetHenhmetafile() |
Restituisce un handle Windows per una classe Metafile avanzata. |
GetLifetimeService() |
Obsoleti.
Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza. (Ereditato da MarshalByRefObject) |
GetMetafileHeader() |
Restituisce l'oggetto MetafileHeader associato a Metafile. |
GetMetafileHeader(IntPtr) |
Restituisce l'oggetto MetafileHeader associato all'oggetto Metafile specificato. |
GetMetafileHeader(IntPtr, WmfPlaceableFileHeader) |
Restituisce l'oggetto MetafileHeader associato all'oggetto Metafile specificato. |
GetMetafileHeader(Stream) |
Restituisce l'oggetto MetafileHeader associato all'oggetto Metafile specificato. |
GetMetafileHeader(String) |
Restituisce l'oggetto MetafileHeader associato all'oggetto Metafile specificato. |
GetPropertyItem(Int32) |
Ottiene l'elemento di proprietà specificato da questo oggetto Image. (Ereditato da Image) |
GetThumbnailImage(Int32, Int32, Image+GetThumbnailImageAbort, IntPtr) |
Restituisce un'anteprima di questo oggetto Image. (Ereditato da Image) |
GetType() |
Ottiene l'oggetto 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 dell'oggetto Object corrente. (Ereditato da Object) |
MemberwiseClone(Boolean) |
Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente. (Ereditato da MarshalByRefObject) |
PlayRecord(EmfPlusRecordType, Int32, Int32, Byte[]) |
Esegue un singolo record del metafile. |
RemovePropertyItem(Int32) |
Rimuove da questo oggetto Image l'elemento di proprietà specificato. (Ereditato da Image) |
RotateFlip(RotateFlipType) |
Ruota, capovolge o ruota e capovolge Image. (Ereditato da Image) |
Save(Stream, ImageCodecInfo, EncoderParameters) |
Salva questa immagine nel flusso specificato, con i parametri di codificatore specificato e codificatore di immagini. (Ereditato da Image) |
Save(Stream, ImageFormat) |
Salva questa immagine nel flusso e nel formato specificati. (Ereditato da Image) |
Save(String) |
Salva questo oggetto Image nel file o flusso specificato. (Ereditato da Image) |
Save(String, ImageCodecInfo, EncoderParameters) |
Salva l'immagine Image nel file specificato, con i parametri di codificatore specificato e di codificatore di immagini. (Ereditato da Image) |
Save(String, ImageFormat) |
Salva questo oggetto Image nel file e nel formato specificati. (Ereditato da Image) |
SaveAdd(EncoderParameters) |
Aggiunge un fotogramma al file o al flusso specificato in una precedente chiamata al metodo Save. Usare questo metodo per salvare i fotogrammi selezionati da un'immagine a più fotogrammi in un'altra immagine a più fotogrammi. (Ereditato da Image) |
SaveAdd(Image, EncoderParameters) |
Aggiunge un fotogramma al file o al flusso specificato in una precedente chiamata al metodo Save. (Ereditato da Image) |
SelectActiveFrame(FrameDimension, Int32) |
Seleziona il fotogramma specificato in base alla dimensione e all'indice. (Ereditato da Image) |
SetPropertyItem(PropertyItem) |
Archivia un elemento di proprietà (porzione di metadati) in questo oggetto 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 oggetto SerializationInfo con i dati necessari per serializzare l'oggetto di destinazione. (Ereditato da Image) |