HwndSource Classe

Definizione

Presenta il contenuto di Windows Presentation Foundation (WPF) in una finestra di Win32.

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
type HwndSource = class
    inherit PresentationSource
    interface IDisposable
    interface IKeyboardInputSink
    interface IWin32Window
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.

Implementa HwndSource una finestra Win32 che può contenere contenuto WPF. Il contenuto WPF nella finestra viene disposto, misurato e sottoposto a rendering; ed è interattivo per l'input. Poiché è HwndSource progettato specificamente per interagire con Win32, questa classe espone diverse funzionalità Win32 di basso livello. È possibile usare questa classe per eseguire le operazioni seguenti:

  • Specificare gli stili delle finestre, gli stili della classe finestra e gli stili delle finestre estese.

  • Associare la procedura della finestra.

  • Fornire l'accesso all'handle di finestra (HWND).

  • Eliminare la finestra.

La HwndSource classe è progettata per l'interoperabilità generale e non è progettata come wrapper HWND gestito. In generale, non fornisce metodi gestiti per modificare la finestra o le proprietà per controllarne lo stato. La classe fornisce invece HwndSource l'accesso all'handle della finestra Win32 (HWND) tramite la Handle proprietà , che può essere passata tramite tecniche PInvoke alle API Win32 per modificare la finestra.

Edilizia

Molti aspetti di HwndSource possono essere specificati solo in fase di costruzione. Per creare un oggetto HwndSource, creare prima una HwndSourceParameters struttura e popolarla con i parametri desiderati. Questi parametri includono quanto segue:

  • Classe, finestra e stili di finestra estesi. È necessario usare PInvoke per modificare gli stili dopo la creazione della finestra. Non tutti gli stili possono essere modificati dopo la creazione della finestra. Consultare la documentazione di Win32 prima di modificare gli stili delle finestre.

  • Posizione iniziale della finestra.

  • Le dimensioni iniziali della finestra, che includono se le dimensioni sono specificate o devono essere determinate dalle dimensioni determinate del contenuto WPF.

  • Finestra padre.

  • Oggetto HwndSourceHook da includere nella catena di procedure della finestra. Se si specifica un hook in fase di costruzione, riceve tutti i messaggi per la finestra. È possibile usare AddHook per aggiungere un hook dopo la creazione della finestra.

  • Impostazioni di trasparenza. Una finestra di primo livello può essere configurata per la fusione con le altre finestre sul desktop in base alla trasparenza per pixel del contenuto WPF. Per abilitare questa impostazione, impostare la UsesPerPixelOpacity proprietà in su HwndSourceParameterstrue. Questa proprietà può essere specificata solo in fase di costruzione e solo tramite la firma del HwndSource(HwndSourceParameters) costruttore e impone diverse limitazioni.

Dopo aver popolato la HwndSourceParameters struttura, passarla al HwndSource(HwndSourceParameters) costruttore per .HwndSource

Durata dell'oggetto

Un HwndSource è un normale oggetto COMMON Language Runtime (CLR) e la relativa durata viene gestita dal Garbage Collector. Poiché rappresenta HwndSource una risorsa non gestita, HwndSource implementa IDisposable. La chiamata Dispose sincrona elimina immediatamente la finestra Win32 se viene chiamata dal thread proprietario. Se viene chiamato da un altro thread, la finestra Win32 viene eliminata definitivamente in modo asincrono. La chiamata Dispose esplicita dal codice di interoperabilità potrebbe essere necessaria per determinati scenari di interoperabilità.

Procedure finestra

La HwndSource classe implementa la propria routine finestra. Questa procedura della finestra viene usata per elaborare messaggi di finestra importanti, ad esempio quelli correlati al layout, al rendering e all'input. Tuttavia, è anche possibile collegare la procedura della finestra per il proprio uso. È possibile specificare il proprio gancio durante la costruzione impostando la HwndSourceParameters.HwndSourceHook proprietà oppure è anche possibile usare AddHook e RemoveHook aggiungere e rimuovere ganci dopo la creazione della finestra. Gli hook vengono chiamati dall'ordine last-in first-out, che consente agli hook di eseguire prima dell'elaborazione predefinita. I ganci effettivi sono mantenuti da un riferimento debole. Assicurarsi quindi di gestire la durata del delegato hook.

Per altre informazioni su HwndSource e altre classi di interoperabilità, vedere Interoperabilità WPF e Win32.

Si noti come i costruttori per prendere parametri simili ai parametri per HwndSource le funzioni Win32, ad esempio CreateWindowEx.

Le trasformazioni di scalabilità non devono essere applicate all'oggetto RootVisual di un HwndSourceoggetto . Vedere Osservazioni per RootVisual.

Costruttori

HwndSource(HwndSourceParameters)

Inizializza una nuova istanza della classe HwndSource utilizzando una struttura che contiene le impostazioni iniziali.

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.

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.

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.

Proprietà

AcquireHwndFocusInMenuMode

Ottiene il valore che determina se acquisire lo stato attivo Win32 per l'applicazione WPF che contiene la finestra per HwndSource.

ChildKeyboardInputSinks

Ottiene una sequenza di sink di input registrati.

CompositionTarget

Ottiene il gestore visivo per la finestra ospitata.

DefaultAcquireHwndFocusInMenuMode

Ottiene o imposta il valore AcquireHwndFocusInMenuMode predefinito per le nuove istanze dell'oggetto HwndSource.

Dispatcher

Ottiene l'oggetto Dispatcher associato a DispatcherObject.

(Ereditato da DispatcherObject)
Handle

Ottiene l'handle della finestra per questo oggetto HwndSource.

IsDisposed

Ottiene un valore che indica se Dispose() è stato chiamato in relazione a questo oggetto HwndSource.

KeyboardInputSiteCore

Ottiene o imposta un riferimento all'interfaccia IKeyboardInputSite del contenitore del componente.

RestoreFocusMode

Ottiene l'oggetto RestoreFocusMode per la finestra.

RootVisual

Ottiene o imposta l'oggetto RootVisual della finestra.

SizeToContent

Ottiene o imposta se e come la finestra viene ridimensionata in base al contenuto.

UsesPerPixelOpacity

Ottiene un valore che dichiara se l'opacità per pixel del contenuto della finestra di origine viene rispettato.

Metodi

AddHook(HwndSourceHook)

Aggiunge un gestore eventi che riceve tutti i messaggi della finestra.

AddSource()

Aggiunge un'istanza della classe derivata PresentationSource all'elenco delle origini di presentazione note.

(Ereditato da PresentationSource)
CheckAccess()

Determina se il thread chiamante ha accesso a DispatcherObject.

(Ereditato da DispatcherObject)
ClearContentRenderedListeners()

Imposta l'elenco di listener per l'evento ContentRendered su null.

(Ereditato da PresentationSource)
CreateHandleRef()

Ottiene l'handle della finestra per HwndSource. L'handle della finestra viene incluso come parte di una struttura HandleRef.

Dispose()

Libera tutte le risorse gestite utilizzate da HwndSource e genera l'evento Disposed.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
FromHwnd(IntPtr)

Restituisce l'oggetto HwndSource della finestra specificata.

GetCompositionTargetCore()

Ottiene la destinazione visiva della finestra.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
HasFocusWithinCore()

Ottiene un valore che indica se il sink o uno dei componenti contenuti ha lo stato attivo.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
OnDpiChanged(HwndDpiChangedEventArgs)

Chiamato quando è prevista una variazione del valore DPI per la finestra.

OnMnemonicCore(MSG, ModifierKeys)

Chiamato quando viene richiamato uno dei tasti di scelta rapida (tasti di scelta) per questo sink.

RegisterKeyboardInputSinkCore(IKeyboardInputSink)

Registra l'interfaccia IKeyboardInputSink di un componente contenuto.

RemoveHook(HwndSourceHook)

Rimuove i gestori eventi aggiunti da AddHook(HwndSourceHook).

RemoveSource()

Rimuove un'istanza della classe derivata PresentationSource dall'elenco delle origini di presentazione note.

(Ereditato da PresentationSource)
RootChanged(Visual, Visual)

Fornisce una notifica della modifica dell'oggetto Visual radice.

(Ereditato da PresentationSource)
TabIntoCore(TraversalRequest)

Imposta lo stato attivo sulla prima tabulazione o l'ultima tabulazione del sink.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
TranslateAcceleratorCore(MSG, ModifierKeys)

Elabora input dalla tastiera al livello del messaggio Keydown.

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).

VerifyAccess()

Impone che il thread chiamante abbia accesso a DispatcherObject.

(Ereditato da DispatcherObject)

Eventi

AutoResized

Si verifica quando il layout causa il ridimensionamento automatico di HwndSource.

ContentRendered

Si verifica dopo il completamento del rendering del contenuto che diventa pronto per le interazioni con l'utente.

(Ereditato da PresentationSource)
Disposed

Si verifica quando viene chiamato il metodo Dispose() in relazione a questo oggetto.

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.

SizeToContentChanged

Si verifica quando il valore della proprietà SizeToContent cambia.

Implementazioni dell'interfaccia esplicita

IKeyboardInputSink.HasFocusWithin()

Per una descrizione di questo membro, vedere IList.Remove(Object).

IKeyboardInputSink.KeyboardInputSite

Per una descrizione di questo membro, vedere KeyboardInputSite.

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

Per una descrizione di questo membro, vedere OnMnemonic(MSG, ModifierKeys).

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

Per una descrizione di questo membro, vedere RegisterKeyboardInputSink(IKeyboardInputSink).

IKeyboardInputSink.TabInto(TraversalRequest)

Per una descrizione di questo membro, vedere TabInto(TraversalRequest).

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

Per una descrizione di questo membro, vedere TranslateAccelerator(MSG, ModifierKeys).

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

Per una descrizione di questo membro, vedere TranslateChar(MSG, ModifierKeys).

Si applica a

Vedi anche