HwndSource Classe

Definizione

Presenta il contenuto di Windows Presentation Foundation (WPF) in una finestra di Win32.Presents Windows Presentation Foundation (WPF) content in a Win32 window.

public ref class HwndSource : System::Windows::PresentationSource, IDisposable, System::Windows::Interop::IKeyboardInputSink, System::Windows::Interop::IWin32Window
public class HwndSource : System.Windows.PresentationSource, IDisposable, System.Windows.Interop.IKeyboardInputSink, System.Windows.Interop.IWin32Window
type HwndSource = class
    inherit PresentationSource
    interface IDisposable
    interface IWin32Window
    interface IKeyboardInputSink
Public Class HwndSource
Inherits PresentationSource
Implements IDisposable, IKeyboardInputSink, IWin32Window
Ereditarietà
Implementazioni

Commenti

Importante

Molti membri di questa classe non sono disponibili nell'area di sicurezza Internet.Many members of this class are unavailable in the Internet security zone.

Un HwndSource implementa una finestra di Win32Win32 che può contenere WPFWPF contenuto.An HwndSource implements a Win32Win32 window that can contain WPFWPF content. Il contenuto WPFWPF nella finestra viene disposto, misurato e sottoposto a rendering; ed è interattivo per l'input.The WPFWPF content in the window is arranged, measured, and rendered; and is interactive to input. Poiché la HwndSource è progettata in modo specifico per interagire con Win32Win32, questa classe espone diverse funzionalità di Win32Win32 di basso livello.Because the HwndSource is specifically designed to interoperate with Win32Win32, this class exposes several low-level Win32Win32 features. È possibile usare questa classe per eseguire le operazioni seguenti:You can use this class to do the following:

  • Specificare gli stili della finestra, gli stili delle classi della finestra e gli stili estesi della finestra.Specify window styles, window class styles, and extended window styles.

  • Associare la routine della finestra.Hook the window procedure.

  • Fornire l'accesso all'handle di finestra (HWND).Provide access to the window handle (HWND).

  • Elimina la finestra.Destroy the window.

La classe HwndSource è progettata per l'interoperabilità generale e non è progettata come wrapper HWND gestito.The HwndSource class is designed for general interoperability and is not designed as a managed HWND wrapper. In generale, non fornisce metodi gestiti per modificare la finestra o le proprietà per esaminarne lo stato.In general, it does not provide managed methods for manipulating the window or properties for inspecting its state. Il HwndSource classe fornisce invece l'accesso all'handle della finestra di Win32Win32 (HWND) tramite la proprietà Handle, che può essere passata per mezzo di tecniche PInvoke alle API Win32Win32 per poter modificare la finestra.Instead, the HwndSource class provides access to the Win32Win32 window handle (HWND) through the Handle property, which can be passed by means of PInvoke techniques to Win32Win32 APIs in order to manipulate the window.

CostruzioneConstruction

Molti aspetti del HwndSource possono essere specificati solo in fase di costruzione.Many aspects of the HwndSource can only be specified at construction time. Per creare una HwndSource, creare prima di tutto una struttura HwndSourceParameters e popolarla con i parametri desiderati.To create an HwndSource, first create an HwndSourceParameters structure and populate it with the desired parameters. Questi parametri includono quanto segue:These parameters include the following:

  • Gli stili della classe, della finestra e della finestra estesa.The class, window, and extended window styles. È necessario utilizzare PInvoke per modificare gli stili dopo la creazione della finestra.You must use PInvoke to change the styles after the window is created. Non tutti gli stili possono essere modificati dopo la creazione della finestra.Not all styles can be changed after the window is created. Per modificare gli stili della finestra, consultare la documentazione Win32Win32.Consult the Win32Win32 documentation before changing window styles.

  • Posizione iniziale della finestra.The initial position of the window.

  • Dimensioni iniziali della finestra, che includono se le dimensioni sono specificate o devono essere determinate dalla dimensione determinata del contenuto WPFWPF.The initial size of the window, which includes whether the size is specified or should be determined from the determined size of the WPFWPF content.

  • Finestra padre.The parent window.

  • HwndSourceHook da includere nella catena di routine della finestra.The HwndSourceHook to include in the window procedure chain. Se si specifica un hook in fase di costruzione, riceve tutti i messaggi per la finestra.If you specify a hook at construction time, it receives all messages for the window. È possibile usare AddHook per aggiungere un hook dopo la creazione della finestra.You can use AddHook to add a hook after the window is created.

  • Impostazioni di trasparenza.The transparency settings. Una finestra di primo livello può essere configurata in modo da fondersi con le altre finestre sul desktop in base alla trasparenza per pixel del contenuto WPFWPF.A top-level window can be configured to blend with the other windows on the desktop according to the per-pixel transparency of the WPFWPF content. Per abilitare questa impostazione, impostare la proprietà UsesPerPixelOpacity nel HwndSourceParameters true.To enable this, set the UsesPerPixelOpacity property in the HwndSourceParameters to true. Questa proprietà può essere specificata solo in fase di costruzione e solo tramite la firma del costruttore HwndSource(HwndSourceParameters) e impone diverse limitazioni.This property can only be specified at construction time, and only through the HwndSource(HwndSourceParameters) constructor signature, and it imposes several limitations.

Dopo aver popolato la struttura di HwndSourceParameters, passarla al costruttore HwndSource(HwndSourceParameters) per il HwndSource.After you populate the HwndSourceParameters structure, pass it to the HwndSource(HwndSourceParameters) constructor for the HwndSource.

Durata degli oggettiObject Lifetime

Un HwndSource è un normale oggetto Common Language Runtime (CLR)common language runtime (CLR) e la relativa durata è gestita dal Garbage Collector.An HwndSource is a regular Common Language Runtime (CLR)common language runtime (CLR) object, and its lifetime is managed by the garbage collector. Poiché il HwndSource rappresenta una risorsa non gestita, HwndSource implementa IDisposable.Because the HwndSource represents an unmanaged resource, HwndSource implements IDisposable. Chiamando in modo sincrono Dispose Elimina immediatamente la finestra di Win32Win32 se viene chiamato dal thread proprietario.Synchronously calling Dispose immediately destroys the Win32Win32 window if called from the owner thread. Se chiamato da un altro thread, la finestra Win32Win32 viene distrutta in modo asincrono.If called from another thread, the Win32Win32 window is destroyed asynchronously. La chiamata di Dispose in modo esplicito dal codice interoperativo potrebbe essere necessaria per determinati scenari di interoperatività.Calling Dispose explicitly from the interoperating code might be necessary for certain interoperation scenarios.

Routine della finestraWindow Procedures

La classe HwndSource implementa la propria routine della finestra.The HwndSource class implements its own window procedure. Questa procedura della finestra viene utilizzata per elaborare messaggi importanti della finestra, ad esempio quelli relativi al layout, al rendering e all'input.This window procedure is used to process important window messages, such as those related to layout, rendering, and input. Tuttavia, è anche possibile associare la routine della finestra per uso personale.However, you can also hook the window procedure for your own use. È possibile specificare un hook personalizzato durante la costruzione impostando la proprietà HwndSourceParameters.HwndSourceHook oppure è possibile utilizzare anche AddHook e RemoveHook per aggiungere e rimuovere hook dopo la creazione della finestra.You can specify your own hook during construction by setting the HwndSourceParameters.HwndSourceHook property, or you can also use AddHook and RemoveHook to add and remove hooks after the window is created. Gli hook vengono chiamati dall'ultimo ordine di primo, che consente l'esecuzione degli hook prima dell'elaborazione incorporata.The hooks are called by last-in first-out order, which enables your hooks to execute before the built-in processing. Gli hook effettivi sono conservati da un riferimento debole.The actual hooks are held by a weak reference. Assicurarsi pertanto di gestire la durata del delegato hook.Therefore, make sure that you manage the lifetime of your hook delegate.

Per ulteriori informazioni su HwndSource e altre classi di interoperabilità, vedere WPF and Win32 Interoperation.For more information about HwndSource and other interoperation classes, see WPF and Win32 Interoperation.

Si noti come i costruttori per HwndSource accettano parametri simili ai parametri per Win32Win32 funzioni come CreateWindowEx.Notice how the constructors for HwndSource take parameters that resemble the parameters for Win32Win32 functions such as CreateWindowEx.

Le trasformazioni di ridimensionamento non devono essere applicate al RootVisual di un HwndSource.Scale transformations should not be applied to the RootVisual of an HwndSource. Vedere la sezione Osservazioni per RootVisual.See Remarks for RootVisual.

Costruttori

HwndSource(HwndSourceParameters)

Inizializza una nuova istanza della classe HwndSource utilizzando una struttura che contiene le impostazioni iniziali.Initializes a new instance of the HwndSource class by using a structure that contains the initial settings.

HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr)

Inizializza una nuova istanza della classe HwndSource con uno stile della classe specificato, uno stile, uno stile esteso, la posizione x-y, la larghezza, l'altezza, il nome e la finestra padre.Initializes a new instance of the HwndSource class with a specified class style, style, extended style, x-y position, width, height, name, and parent window.

HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr, Boolean)

Inizializza un'istanza nuova della classe HwndSource con uno stile della classe specificato, uno stile, uno stile esteso, la posizione x-y, la larghezza, l'altezza, il nome e la finestra padre e specificando se la finestra si ridimensiona automaticamente.Initializes a new instance of the HwndSource class with a specified class style, style, extended style, x-y position, width, height, name, and parent window, and by specifying whether the window is autosized.

HwndSource(Int32, Int32, Int32, Int32, Int32, String, IntPtr)

Inizializza una nuova istanza della classe HwndSource con uno stile della classe specificato, uno stile, uno stile esteso, la posizione x-y, il nome e la finestra padre.Initializes a new instance of the HwndSource class with a specified class style, style, extended style, x-y position, name, and parent window.

Proprietà

AcquireHwndFocusInMenuMode

Ottiene il valore che determina se acquisire lo stato attivo Win32 per l'applicazione WPF che contiene la finestra per HwndSource.Gets the value that determines whether to acquire Win32 focus for the WPF containing window for this HwndSource.

ChildKeyboardInputSinks

Ottiene una sequenza di sink di input registrati.Gets a sequence of registered input sinks.

CompositionTarget

Ottiene il gestore visivo per la finestra ospitata.Gets the visual manager for the hosted window.

DefaultAcquireHwndFocusInMenuMode

Ottiene o imposta il valore AcquireHwndFocusInMenuMode predefinito per le nuove istanze dell'oggetto HwndSource.Gets or sets the default AcquireHwndFocusInMenuMode value for new instances of HwndSource.

Dispatcher

Ottiene l'oggetto Dispatcher associato a DispatcherObject.Gets the Dispatcher this DispatcherObject is associated with.

(Ereditato da DispatcherObject)
Handle

Ottiene l'handle della finestra per questo oggetto HwndSource.Gets the window handle for this HwndSource.

IsDisposed

Ottiene un valore che indica se Dispose() è stato chiamato in relazione a questo oggetto HwndSource.Gets a value that indicates whether Dispose() has been called on this HwndSource.

KeyboardInputSiteCore

Ottiene o imposta un riferimento all'interfaccia IKeyboardInputSite del contenitore del componente.Gets or sets a reference to the component's container's IKeyboardInputSite interface.

RestoreFocusMode

Ottiene l'oggetto RestoreFocusMode per la finestra.Gets the RestoreFocusMode for the window.

RootVisual

Ottiene o imposta l'oggetto RootVisual della finestra.Gets or sets the RootVisual of the window.

SizeToContent

Ottiene o imposta se e come la finestra viene ridimensionata in base al contenuto.Get or sets whether and how the window is sized to its content.

UsesPerPixelOpacity

Ottiene un valore che dichiara se l'opacità per pixel del contenuto della finestra di origine viene rispettato.Gets a value that declares whether the per-pixel opacity of the source window content is respected.

Metodi

AddHook(HwndSourceHook)

Aggiunge un gestore eventi che riceve tutti i messaggi della finestra.Adds an event handler that receives all window messages.

AddSource()

Aggiunge un'istanza della classe derivata PresentationSource all'elenco delle origini di presentazione note.Adds a PresentationSource derived class instance to the list of known presentation sources.

(Ereditato da PresentationSource)
CheckAccess()

Determina se il thread chiamante ha accesso a DispatcherObject.Determines whether the calling thread has access to this DispatcherObject.

(Ereditato da DispatcherObject)
ClearContentRenderedListeners()

Imposta l'elenco di listener per l'evento ContentRendered su null.Sets the list of listeners for the ContentRendered event to null.

(Ereditato da PresentationSource)
CreateHandleRef()

Ottiene l'handle della finestra per HwndSource.Gets the window handle for the HwndSource. L'handle della finestra viene incluso come parte di una struttura HandleRef.The window handle is packaged as part of a HandleRef structure.

Dispose()

Libera tutte le risorse gestite utilizzate da HwndSource e genera l'evento Disposed.Releases all managed resources that are used by the HwndSource, and raises the Disposed event.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
FromHwnd(IntPtr)

Restituisce l'oggetto HwndSource della finestra specificata.Returns the HwndSource object of the specified window.

GetCompositionTargetCore()

Ottiene la destinazione visiva della finestra.Gets the visual target of the window.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
HasFocusWithinCore()

Ottiene un valore che indica se il sink o uno dei componenti contenuti ha lo stato attivo.Gets a value that indicates whether the sink or one of its contained components has focus.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
OnDpiChanged(HwndDpiChangedEventArgs)

Chiamato quando è prevista una variazione del valore DPI per la finestra.Called when the DPI is going to change for the window.

OnMnemonicCore(MSG, ModifierKeys)

Chiamato quando viene richiamato uno dei tasti di scelta rapida (tasti di scelta) per questo sink.Called when one of the mnemonics (access keys) for this sink is invoked.

RegisterKeyboardInputSinkCore(IKeyboardInputSink)

Registra l'interfaccia IKeyboardInputSink di un componente contenuto.Registers the IKeyboardInputSink interface of a contained component.

RemoveHook(HwndSourceHook)

Rimuove i gestori eventi aggiunti da AddHook(HwndSourceHook).Removes the event handlers that were added by AddHook(HwndSourceHook).

RemoveSource()

Rimuove un'istanza della classe derivata PresentationSource dall'elenco delle origini di presentazione note.Removes a PresentationSource derived class instance from the list of known presentation sources.

(Ereditato da PresentationSource)
RootChanged(Visual, Visual)

Fornisce una notifica della modifica dell'oggetto Visual radice.Provides notification that the root Visual has changed.

(Ereditato da PresentationSource)
TabIntoCore(TraversalRequest)

Imposta lo stato attivo sulla prima tabulazione o l'ultima tabulazione del sink.Sets focus on either the first tab stop or the last tab stop of the sink.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)
TranslateAcceleratorCore(MSG, ModifierKeys)

Elabora input dalla tastiera al livello del messaggio Keydown.Processes keyboard input at the key-down message level.

TranslateCharCore(MSG, ModifierKeys)

Elabora i messaggi di input WM_CHAR, WM_SYSCHAR, WM_DEADCHAR e WM_SYSDEADCHAR prima che venga chiamato il metodo OnMnemonic(MSG, ModifierKeys).Processes WM_CHAR, WM_SYSCHAR, WM_DEADCHAR, and WM_SYSDEADCHAR input messages before the OnMnemonic(MSG, ModifierKeys) method is called.

VerifyAccess()

Impone che il thread chiamante abbia accesso a DispatcherObject.Enforces that the calling thread has access to this DispatcherObject.

(Ereditato da DispatcherObject)

Eventi

AutoResized

Si verifica quando il layout causa il ridimensionamento automatico di HwndSource.Occurs when layout causes the HwndSource to automatically resize.

ContentRendered

Si verifica dopo il completamento del rendering del contenuto che diventa pronto per le interazioni con l'utente.Occurs when content is rendered and ready for user interaction.

(Ereditato da PresentationSource)
Disposed

Si verifica quando viene chiamato il metodo Dispose() in relazione a questo oggetto.Occurs when the Dispose() method is called on this object.

DpiChanged

Si verifica quando viene modificato il valore DPI del monitor di Hwnd o quando Hwnd viene spostato a un monitor con un valore DPI diverso.Occurs when the DPI of the monitor of this Hwnd has changed, or the Hwnd is moved to a monitor with a different DPI.

SizeToContentChanged

Si verifica quando il valore della proprietà SizeToContent cambia.Occurs when the value of the SizeToContent property changes.

Implementazioni dell'interfaccia esplicita

IKeyboardInputSink.HasFocusWithin()

Per una descrizione di questo membro, vedere IList.Remove(Object).For a description of this member, see IList.Remove(Object).

IKeyboardInputSink.KeyboardInputSite

Per una descrizione di questo membro, vedere KeyboardInputSite.For a description of this member, see KeyboardInputSite.

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

Per una descrizione di questo membro, vedere OnMnemonic(MSG, ModifierKeys).For a description of this member, see OnMnemonic(MSG, ModifierKeys).

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

Per una descrizione di questo membro, vedere RegisterKeyboardInputSink(IKeyboardInputSink).For a description of this member, see RegisterKeyboardInputSink(IKeyboardInputSink).

IKeyboardInputSink.TabInto(TraversalRequest)

Per una descrizione di questo membro, vedere TabInto(TraversalRequest).For a description of this member, see TabInto(TraversalRequest).

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

Per una descrizione di questo membro, vedere TranslateAccelerator(MSG, ModifierKeys).For a description of this member, see TranslateAccelerator(MSG, ModifierKeys).

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

Per una descrizione di questo membro, vedere TranslateChar(MSG, ModifierKeys).For a description of this member, see TranslateChar(MSG, ModifierKeys).

Si applica a

Vedi anche