Condividi tramite


HwndSource Classe

Definizione

Presenta il contenuto di Windows Presentation Foundation (WPF) in una finestra 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 di finestra, gli stili della classe finestra e gli stili delle finestre estese.

  • Associare la procedura della finestra.

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

  • Distruggi 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 di finestra Win32 (HWND) tramite la Handle proprietà , che può essere passata tramite tecniche PInvoke alle API Win32 per modificare la finestra.

Costruzione

Molti aspetti di HwndSource possono essere specificati solo in fase di costruzione. Per creare un HwndSourceoggetto , creare prima di tutto 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 vengono 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 operazione, impostare la UsesPerPixelOpacity proprietà in HwndSourceParameters su true. 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

è HwndSource un normale oggetto CLR (Common Language Runtime) e la sua 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 associare 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'ultimo ordine di first-out, che consente l'esecuzione degli hook prima dell'elaborazione predefinita. Gli hook 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 che i costruttori per HwndSource accettare parametri simili ai parametri per le funzioni Win32, ad esempio CreateWindowEx.

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

Costruttori

Nome Descrizione
HwndSource(HwndSourceParameters)

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

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

Inizializza una nuova istanza della HwndSource classe con uno stile di classe, uno stile, uno stile esteso, una posizione x-y, una larghezza, un'altezza, un nome e una finestra padre specificati e specificando se la finestra viene ridimensionata automaticamente.

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

Inizializza una nuova istanza della HwndSource classe con uno stile di classe, uno stile, uno stile esteso, una posizione x-y, una larghezza, un'altezza, un nome e una finestra padre specificati.

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

Inizializza una nuova istanza della HwndSource classe con uno stile di classe, uno stile, uno stile esteso, una posizione x-y, un nome e una finestra padre specificati.

Proprietà

Nome Descrizione
AcquireHwndFocusInMenuMode

Ottiene il valore che determina se acquisire lo stato attivo Win32 per la finestra contenente WPF per questo HwndSourceoggetto .

ChildKeyboardInputSinks

Ottiene una sequenza di sink di input registrati.

CompositionTarget

Ottiene il gestore visivo per la finestra ospitata.

DefaultAcquireHwndFocusInMenuMode

Ottiene o imposta il valore predefinito AcquireHwndFocusInMenuMode per le nuove istanze di HwndSource.

Dispatcher

Ottiene l'oggetto DispatcherDispatcherObject a cui è associato.

(Ereditato da DispatcherObject)
Handle

Ottiene l'handle della finestra per l'oggetto HwndSource.

IsDisposed

Ottiene un valore che indica se Dispose() è stato chiamato su questo HwndSourceoggetto .

KeyboardInputSiteCore

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

RestoreFocusMode

Ottiene l'oggetto RestoreFocusMode per la finestra.

RootVisual

Ottiene o imposta l'oggetto RootVisual della finestra.

SizeToContent

Ottiene o imposta un valore che indica 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 rispettata.

Metodi

Nome Descrizione
AddHook(HwndSourceHook)

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

AddSource()

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

(Ereditato da PresentationSource)
CheckAccess()

Determina se il thread chiamante ha accesso a questo DispatcherObjectoggetto .

(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 l'oggetto HwndSource. L'handle della finestra viene incluso in un pacchetto come parte di una HandleRef struttura.

Dispose()

Rilascia tutte le risorse gestite usate da HwndSourcee 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 il Type dell'istanza corrente.

(Ereditato da Object)
HasFocusWithinCore()

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

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
OnDpiChanged(HwndDpiChangedEventArgs)

Chiamato quando il valore DPI cambierà per la finestra.

OnMnemonicCore(MSG, ModifierKeys)

Chiamato quando viene richiamato uno dei tasti di scelta (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 PresentationSource di classe derivata dall'elenco di origini di presentazione note.

(Ereditato da PresentationSource)
RootChanged(Visual, Visual)

Fornisce una notifica che indica che la radice Visual è stata modificata.

(Ereditato da PresentationSource)
TabIntoCore(TraversalRequest)

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

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
TranslateAcceleratorCore(MSG, ModifierKeys)

Elabora l'input della tastiera a livello di messaggio di tastiera.

TranslateCharCore(MSG, ModifierKeys)

Elabora WM_CHAR, WM_SYSCHAR, WM_DEADCHAR e WM_SYSDEADCHAR messaggi di input prima che venga chiamato il OnMnemonic(MSG, ModifierKeys) metodo .

VerifyAccess()

Impone che il thread chiamante abbia accesso a questo DispatcherObjectoggetto .

(Ereditato da DispatcherObject)

Eventi

Nome Descrizione
AutoResized

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

ContentRendered

Si verifica quando viene eseguito il rendering del contenuto e pronto per l'interazione dell'utente.

(Ereditato da PresentationSource)
Disposed

Si verifica quando il Dispose() metodo viene chiamato su questo oggetto.

DpiChanged

Si verifica quando il valore DPI del monitor di questo oggetto Hwnd è stato modificato o il valore Hwnd viene spostato in un monitor con un valore DPI diverso.

SizeToContentChanged

Si verifica quando il valore della proprietà SizeToContent cambia.

Implementazioni dell'interfaccia esplicita

Nome Descrizione
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