HwndSource Klasse

Definition

Stellt WPF-Inhalt in einem Win32-Fenster dar.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
Vererbung
Implementiert

Hinweise

Wichtig

Viele Mitglieder dieser Klasse sind in der Internet Sicherheitszone nicht verfügbar.Many members of this class are unavailable in the Internet security zone.

Ein HwndSource implementiert ein Win32Win32 Fenster, das WPFWPF Inhalt enthalten kann.An HwndSource implements a Win32Win32 window that can contain WPFWPF content. Der WPFWPF Inhalt im Fenster wird angeordnet, gemessen und gerendert. und sind interaktiv für die Eingabe.The WPFWPF content in the window is arranged, measured, and rendered; and is interactive to input. Da der HwndSource speziell für die Zusammenarbeit mit Win32Win32konzipiert ist, stellt diese Klasse mehrere Win32Win32 Features auf niedriger Ebene zur Verfügung.Because the HwndSource is specifically designed to interoperate with Win32Win32, this class exposes several low-level Win32Win32 features. Mit dieser Klasse können Sie folgende Aufgaben ausführen:You can use this class to do the following:

  • Legen Sie Fenster Stile, Fenster Klassen Stile und erweiterte Fenster Stile fest.Specify window styles, window class styles, and extended window styles.

  • Schließen Sie die Fenster Prozedur ein.Hook the window procedure.

  • Ermöglichen des Zugriffs auf das Fenster Handle (HWND).Provide access to the window handle (HWND).

  • Zerstören Sie das Fenster.Destroy the window.

Die HwndSource-Klasse ist für allgemeine Interoperabilität konzipiert und nicht als verwalteter HWND-Wrapper konzipiert.The HwndSource class is designed for general interoperability and is not designed as a managed HWND wrapper. Im Allgemeinen stellt es keine verwalteten Methoden bereit, um das Fenster oder die Eigenschaften zum Überprüfen seines Zustands zu bearbeiten.In general, it does not provide managed methods for manipulating the window or properties for inspecting its state. Stattdessen ermöglicht die HwndSource-Klasse über die Handle-Eigenschaft den Zugriff auf das Win32Win32 Fenster Handle (HWND), das mithilfe von PInvoke-Techniken an Win32Win32-APIs geleitet werden kann, um das Fenster zu bearbeiten.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.

LeichtbauConstruction

Viele Aspekte der HwndSource können nur zum Zeitpunkt der Erstellung angegeben werden.Many aspects of the HwndSource can only be specified at construction time. Um einen HwndSourcezu erstellen, erstellen Sie zunächst eine HwndSourceParameters Struktur, und füllen Sie Sie mit den gewünschten Parametern auf.To create an HwndSource, first create an HwndSourceParameters structure and populate it with the desired parameters. Diese Parameter umfassen Folgendes:These parameters include the following:

  • Die Klassen-, Fenster-und erweiterten Fenster Stile.The class, window, and extended window styles. Sie müssen PInvoke zum Ändern der Stile verwenden, nachdem das Fenster erstellt wurde.You must use PInvoke to change the styles after the window is created. Nicht alle Stile können geändert werden, nachdem das Fenster erstellt wurde.Not all styles can be changed after the window is created. Lesen Sie die Win32Win32 Dokumentation, bevor Sie Fenster Stile ändern.Consult the Win32Win32 documentation before changing window styles.

  • Die Anfangsposition des Fensters.The initial position of the window.

  • Die Anfangs Größe des Fensters, in der angegeben ist, ob die Größe angegeben ist oder ob Sie aus der festgelegten Größe des WPFWPF Inhalts bestimmt werden soll.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.

  • Das übergeordnete Fenster.The parent window.

  • Der HwndSourceHook, der in die Fenster Prozedur Kette aufgenommen werden soll.The HwndSourceHook to include in the window procedure chain. Wenn Sie zur Konstruktionszeit einen Hook angeben, werden alle Nachrichten für das Fenster empfangen.If you specify a hook at construction time, it receives all messages for the window. Nachdem das Fenster erstellt wurde, können Sie mit AddHook einen Hook hinzufügen.You can use AddHook to add a hook after the window is created.

  • Die Transparenz Einstellungen.The transparency settings. Ein Fenster der obersten Ebene kann so konfiguriert werden, dass es mit den anderen Fenstern auf dem Desktop entsprechend der pro-Pixel-Transparenz des WPFWPF Inhalts in Blend ist.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. Um dies zu ermöglichen, legen Sie die UsesPerPixelOpacity-Eigenschaft im HwndSourceParameters auf truefest.To enable this, set the UsesPerPixelOpacity property in the HwndSourceParameters to true. Diese Eigenschaft kann nur zur Erstellungszeit und nur über die HwndSource(HwndSourceParameters) Konstruktorsignatur angegeben werden, und Sie erzwingt mehrere Einschränkungen.This property can only be specified at construction time, and only through the HwndSource(HwndSourceParameters) constructor signature, and it imposes several limitations.

Nachdem Sie die HwndSourceParameters Struktur aufgefüllt haben, übergeben Sie Sie an den HwndSource(HwndSourceParameters)-Konstruktor für die HwndSource.After you populate the HwndSourceParameters structure, pass it to the HwndSource(HwndSourceParameters) constructor for the HwndSource.

Objekt LebensdauerObject Lifetime

Ein HwndSource ist ein reguläres Common Language Runtime (CLR)common language runtime (CLR) Objekt, und seine Lebensdauer wird vom Garbage Collector verwaltet.An HwndSource is a regular Common Language Runtime (CLR)common language runtime (CLR) object, and its lifetime is managed by the garbage collector. Da die HwndSource eine nicht verwaltete Ressource darstellt, HwndSource implementiert IDisposable.Because the HwndSource represents an unmanaged resource, HwndSource implements IDisposable. Beim synchronen Aufrufen von Dispose wird das Win32Win32 Fenster sofort zerstört, wenn es vom Besitzer Thread aufgerufen wird.Synchronously calling Dispose immediately destroys the Win32Win32 window if called from the owner thread. Wenn Sie von einem anderen Thread aufgerufen wird, wird das Win32Win32 Fenster asynchron zerstört.If called from another thread, the Win32Win32 window is destroyed asynchronously. Das explizite Aufrufen von Dispose aus dem-interbetriebssystem kann für bestimmte interoperingszenarios erforderlich sein.Calling Dispose explicitly from the interoperating code might be necessary for certain interoperation scenarios.

Fenster ProzedurenWindow Procedures

Die HwndSource-Klasse implementiert eine eigene Fenster Prozedur.The HwndSource class implements its own window procedure. Diese Fenster Prozedur wird verwendet, um wichtige Fenster Meldungen zu verarbeiten, z. b. solche, die mit Layout, Rendering und Eingabe verknüpft sind.This window procedure is used to process important window messages, such as those related to layout, rendering, and input. Allerdings können Sie auch die Fenster Prozedur für Ihren eigenen Gebrauch anschließen.However, you can also hook the window procedure for your own use. Sie können während der Erstellung einen eigenen Hook angeben, indem Sie die HwndSourceParameters.HwndSourceHook-Eigenschaft festlegen. Sie können auch AddHook und RemoveHook verwenden, um Hooks hinzuzufügen und zu entfernen, nachdem das Fenster erstellt wurde.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. Die Hooks werden von der Last-in-First-Out-Reihenfolge aufgerufen, sodass Ihre Hooks vor der integrierten Verarbeitung ausgeführt werden können.The hooks are called by last-in first-out order, which enables your hooks to execute before the built-in processing. Die eigentlichen Hooks werden von einem schwachen Verweis gehalten.The actual hooks are held by a weak reference. Stellen Sie daher sicher, dass Sie die Lebensdauer des Hook-Delegaten verwalten.Therefore, make sure that you manage the lifetime of your hook delegate.

Weitere Informationen über HwndSource und andere Interoperation-Klassen finden Sie unter WPF-und Win32-Interoperation.For more information about HwndSource and other interoperation classes, see WPF and Win32 Interoperation.

Beachten Sie, dass die Konstruktoren für HwndSource Parameter akzeptieren, die den Parametern für Win32Win32 Funktionen wie z. b. " kreatewindowex" ähneln.Notice how the constructors for HwndSource take parameters that resemble the parameters for Win32Win32 functions such as CreateWindowEx.

Skalierungs Transformationen sollten nicht auf die RootVisual eines HwndSourceangewendet werden.Scale transformations should not be applied to the RootVisual of an HwndSource. Siehe Hinweise zum RootVisual.See Remarks for RootVisual.

Konstruktoren

HwndSource(HwndSourceParameters)

Initialisiert eine neue Instanz der HwndSource-Klasse unter Verwendung einer Struktur, die die Ausgangseinstellungen enthält.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)

Initialisiert eine neue Instanz der HwndSource-Klasse unter Angabe von Klassenstil, Stil, erweitertem Stil, x-y-Position, Breite, Höhe, Name und übergeordnetem Fenster.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)

Initialisiert eine neue Instanz der HwndSource-Klasse unter Angabe von Klassenstil, Stil, erweitertem Stil, x-y-Position, Breite, Höhe, Name und übergeordnetem Fenster sowie ggf. automatischer Größenänderung.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)

Initialisiert eine neue Instanz der HwndSource-Klasse unter Angabe von Klassenstil, Stil, erweitertem Stil, x-y-Position, Name und übergeordnetem Fenster.Initializes a new instance of the HwndSource class with a specified class style, style, extended style, x-y position, name, and parent window.

Eigenschaften

AcquireHwndFocusInMenuMode

Ruft den Wert ab, der bestimmt, ob für diese HwndSource der Win32-Fokus für das Fenster mit WPF erhalten werden soll.Gets the value that determines whether to acquire Win32 focus for the WPF containing window for this HwndSource.

ChildKeyboardInputSinks

Ruft eine Sequenz registrierter Eingabesenken ab.Gets a sequence of registered input sinks.

CompositionTarget

Ruft den visuellen Manager für das gehostete Fenster ab.Gets the visual manager for the hosted window.

DefaultAcquireHwndFocusInMenuMode

Ruft den AcquireHwndFocusInMenuMode-Standardwert für neue Instanzen des HwndSource-Objekts ab oder legt diesen fest.Gets or sets the default AcquireHwndFocusInMenuMode value for new instances of HwndSource.

Dispatcher

Ruft den Dispatcher ab, der diesem DispatcherObject zugeordnet ist.Gets the Dispatcher this DispatcherObject is associated with.

(Geerbt von DispatcherObject)
Handle

Ruft das Fensterhandle für diese HwndSource ab.Gets the window handle for this HwndSource.

IsDisposed

Ruft einen Wert ab, der angibt, ob Dispose() für diese HwndSource aufgerufen wurde.Gets a value that indicates whether Dispose() has been called on this HwndSource.

KeyboardInputSiteCore

Ruft einen Verweis auf die IKeyboardInputSite-Schnittstelle des Containers der Komponente ab oder legt diesen Verweis fest.Gets or sets a reference to the component's container's IKeyboardInputSite interface.

RestoreFocusMode

Ruft das RestoreFocusMode-Objekt für das Fenster ab.Gets the RestoreFocusMode for the window.

RootVisual

Ruft das RootVisual des Fensters ab oder legt dieses fest.Gets or sets the RootVisual of the window.

SizeToContent

Ruft ab oder legt fest, ob und wie die Fenstergröße an den Inhalt angepasst wird.Get or sets whether and how the window is sized to its content.

UsesPerPixelOpacity

Ruft einen Wert ab, der deklariert, ob der Durchlässigkeitswert pro Pixel des Quellfensterinhalts berücksichtigt wird.Gets a value that declares whether the per-pixel opacity of the source window content is respected.

Methoden

AddHook(HwndSourceHook)

Fügt einen Ereignishandler hinzu, der alle Fenstermeldungen empfängt.Adds an event handler that receives all window messages.

AddSource()

Fügt der Liste bekannter Präsentationsquellen eine abgeleitete Instanz der PresentationSource-Klasse hinzu.Adds a PresentationSource derived class instance to the list of known presentation sources.

(Geerbt von PresentationSource)
CheckAccess()

Bestimmt, ob der aufrufende Thread auf dieses DispatcherObject zugreifen kann.Determines whether the calling thread has access to this DispatcherObject.

(Geerbt von DispatcherObject)
ClearContentRenderedListeners()

Legt die Liste mit Listenern für das ContentRendered-Ereignis auf null fest.Sets the list of listeners for the ContentRendered event to null.

(Geerbt von PresentationSource)
CreateHandleRef()

Ruft das Fensterhandle für HwndSource ab.Gets the window handle for the HwndSource. Das Fensterhandle wird als Teil einer HandleRef-Struktur zusammengefasst.The window handle is packaged as part of a HandleRef structure.

Dispose()

Gibt alle verwalteten Ressourcen frei, die von der HwndSource verwendet werden, und löst das Disposed-Ereignis aus.Releases all managed resources that are used by the HwndSource, and raises the Disposed event.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
FromHwnd(IntPtr)

Gibt das HwndSource-Objekt des angegebenen Fensters zurück.Returns the HwndSource object of the specified window.

GetCompositionTargetCore()

Ruft das visuelle Ziel des Fensters ab.Gets the visual target of the window.

GetHashCode()

Dient als die Standard-HashfunktionServes as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
HasFocusWithinCore()

Ruft einen Wert ab, mit dem angegeben wird, ob die Senke oder eine der enthaltenen Komponenten den Fokus hat.Gets a value that indicates whether the sink or one of its contained components has focus.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
OnDpiChanged(HwndDpiChangedEventArgs)

Wird aufgerufen, wenn der DPI-Wert für das Fenster sich ändert.Called when the DPI is going to change for the window.

OnMnemonicCore(MSG, ModifierKeys)

Wird aufgerufen, wenn eines der mnemonischen Zeichen (Zugriffstasten) dieser Senke aufgerufen wird.Called when one of the mnemonics (access keys) for this sink is invoked.

RegisterKeyboardInputSinkCore(IKeyboardInputSink)

Registriert die IKeyboardInputSink-Schnittstelle einer enthaltenen Komponente.Registers the IKeyboardInputSink interface of a contained component.

RemoveHook(HwndSourceHook)

Entfernt die Ereignishandler, die von AddHook(HwndSourceHook) hinzugefügt wurden.Removes the event handlers that were added by AddHook(HwndSourceHook).

RemoveSource()

Entfernt eine abgeleitete Instanz der PresentationSource-Klasse aus der Liste bekannter Präsentationsquellen.Removes a PresentationSource derived class instance from the list of known presentation sources.

(Geerbt von PresentationSource)
RootChanged(Visual, Visual)

Stellt Benachrichtigung über Änderungen der Visual-Stammklasse bereit.Provides notification that the root Visual has changed.

(Geerbt von PresentationSource)
TabIntoCore(TraversalRequest)

Legt den Fokus auf den ersten oder letzten Tabstopp der Senke fest.Sets focus on either the first tab stop or the last tab stop of the sink.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)
TranslateAcceleratorCore(MSG, ModifierKeys)

Verarbeitet Tastatureingaben auf der Ebene von Meldungen für gedrückte Tasten.Processes keyboard input at the key-down message level.

TranslateCharCore(MSG, ModifierKeys)

Verarbeitet die Eingabemeldungen WM_CHAR, WM_SYSCHAR, WM_DEADCHAR und WM_SYSDEADCHAR, bevor die OnMnemonic(MSG, ModifierKeys)-Methode aufgerufen wird.Processes WM_CHAR, WM_SYSCHAR, WM_DEADCHAR, and WM_SYSDEADCHAR input messages before the OnMnemonic(MSG, ModifierKeys) method is called.

VerifyAccess()

Erzwingt, dass der aufrufende Thread auf dieses DispatcherObject zugreifen kann.Enforces that the calling thread has access to this DispatcherObject.

(Geerbt von DispatcherObject)

Ereignisse

AutoResized

Tritt ein, wenn das Layout eine automatische Größenänderung von HwndSource veranlasst.Occurs when layout causes the HwndSource to automatically resize.

ContentRendered

Tritt auf, wenn der Inhalt gerendert wurde und für Benutzerinteraktionen bereit ist.Occurs when content is rendered and ready for user interaction.

(Geerbt von PresentationSource)
Disposed

Tritt ein, wenn die Dispose()-Methode für dieses Objekt aufgerufen wird.Occurs when the Dispose() method is called on this object.

DpiChanged

Tritt auf, wenn der DPI-Wert des Monitors dieses Hwnd sich geändert hat, oder das Hwnd zu einem Monitor mit einem anderen DPI-Wert verschoben wird.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

Tritt auf, wenn sich der Wert der SizeToContent-Eigenschaft ändert.Occurs when the value of the SizeToContent property changes.

Explizite Schnittstellenimplementierungen

IKeyboardInputSink.HasFocusWithin()

Eine Beschreibung dieses Members finden Sie unter IList.Remove(Object).For a description of this member, see IList.Remove(Object).

IKeyboardInputSink.KeyboardInputSite

Eine Beschreibung dieses Members finden Sie unter KeyboardInputSite.For a description of this member, see KeyboardInputSite.

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

Eine Beschreibung dieses Members finden Sie unter OnMnemonic(MSG, ModifierKeys).For a description of this member, see OnMnemonic(MSG, ModifierKeys).

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

Eine Beschreibung dieses Members finden Sie unter RegisterKeyboardInputSink(IKeyboardInputSink).For a description of this member, see RegisterKeyboardInputSink(IKeyboardInputSink).

IKeyboardInputSink.TabInto(TraversalRequest)

Eine Beschreibung dieses Members finden Sie unter TabInto(TraversalRequest).For a description of this member, see TabInto(TraversalRequest).

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

Eine Beschreibung dieses Members finden Sie unter TranslateAccelerator(MSG, ModifierKeys).For a description of this member, see TranslateAccelerator(MSG, ModifierKeys).

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

Eine Beschreibung dieses Members finden Sie unter TranslateChar(MSG, ModifierKeys).For a description of this member, see TranslateChar(MSG, ModifierKeys).

Gilt für:

Siehe auch