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