HwndSource Klasa

Definicja

Przedstawia zawartość Windows Presentation Foundation (WPF) w oknie 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 IKeyboardInputSink
    interface IWin32Window
type HwndSource = class
    inherit PresentationSource
    interface IDisposable
    interface IWin32Window
    interface IKeyboardInputSink
Public Class HwndSource
Inherits PresentationSource
Implements IDisposable, IKeyboardInputSink, IWin32Window
Dziedziczenie
Implementuje

Uwagi

Ważne

Wielu członków tej klasy są niedostępne w strefie zabezpieczeń Internetu.Many members of this class are unavailable in the Internet security zone.

HwndSourceImplementuje okno Win32, które może zawierać zawartość WPF.An HwndSource implements a Win32 window that can contain WPF content. Zawartość WPF w oknie jest uporządkowana, mierzona i renderowane. i jest interaktywny do wprowadzania danych.The WPF content in the window is arranged, measured, and rendered; and is interactive to input. Ponieważ HwndSource program jest specjalnie zaprojektowany do współpracy z systemem Win32, ta klasa uwidacznia kilka funkcji systemu Win32 niskiego poziomu.Because the HwndSource is specifically designed to interoperate with Win32, this class exposes several low-level Win32 features. Za pomocą tej klasy można wykonać następujące czynności:You can use this class to do the following:

  • Określ style okna, style klas okien i rozszerzone style okien.Specify window styles, window class styles, and extended window styles.

  • Przechwytuje procedurę okna.Hook the window procedure.

  • Zapewnianie dostępu do uchwytu okna (HWND).Provide access to the window handle (HWND).

  • Zniszcz okno.Destroy the window.

HwndSourceKlasa jest przeznaczona do ogólnej współdziałania i nie jest zaprojektowana jako zarządzana otoka HWND.The HwndSource class is designed for general interoperability and is not designed as a managed HWND wrapper. Ogólnie rzecz biorąc, nie udostępnia metod zarządzanych do manipulowania oknem lub właściwościami w celu sprawdzenia jego stanu.In general, it does not provide managed methods for manipulating the window or properties for inspecting its state. Zamiast tego HwndSource Klasa zapewnia dostęp do uchwytu okna Win32 (HWND) za pośrednictwem Handle właściwości, która może zostać przeniesiona za pomocą technik PInvoke do interfejsów API Win32 w celu manipulowania oknem.Instead, the HwndSource class provides access to the Win32 window handle (HWND) through the Handle property, which can be passed by means of PInvoke techniques to Win32 APIs in order to manipulate the window.

BudownictwoConstruction

Wiele aspektów HwndSource można określić tylko w czasie konstruowania.Many aspects of the HwndSource can only be specified at construction time. Aby utworzyć HwndSource , należy najpierw utworzyć HwndSourceParameters strukturę i wypełnić ją odpowiednimi parametrami.To create an HwndSource, first create an HwndSourceParameters structure and populate it with the desired parameters. Są to następujące parametry:These parameters include the following:

  • Style okna klasy, okna i rozszerzonego.The class, window, and extended window styles. Aby zmienić style po utworzeniu okna, należy użyć funkcji PInvoke.You must use PInvoke to change the styles after the window is created. Nie wszystkie style można zmienić po utworzeniu okna.Not all styles can be changed after the window is created. Przed zmianą stylów okna zapoznaj się z dokumentacją systemu Win32.Consult the Win32 documentation before changing window styles.

  • Początkowa pozycja okna.The initial position of the window.

  • Początkowy rozmiar okna, który zawiera informacje o tym, czy rozmiar jest określony lub powinien być określony na podstawie określonego rozmiaru zawartości WPF.The initial size of the window, which includes whether the size is specified or should be determined from the determined size of the WPF content.

  • Okno nadrzędne.The parent window.

  • HwndSourceHookDo uwzględnienia w łańcuchu procedury okna.The HwndSourceHook to include in the window procedure chain. Jeśli określisz punkt zaczepienia w czasie konstruowania, odbierze wszystkie komunikaty dla tego okna.If you specify a hook at construction time, it receives all messages for the window. Możesz użyć, AddHook Aby dodać punkt zaczepienia po utworzeniu okna.You can use AddHook to add a hook after the window is created.

  • Ustawienia przezroczystości.The transparency settings. Okno najwyższego poziomu można skonfigurować do mieszania z innymi oknami na pulpicie, zgodnie z przezroczystością na piksele zawartości WPF.A top-level window can be configured to blend with the other windows on the desktop according to the per-pixel transparency of the WPF content. Aby włączyć tę opcję, należy ustawić UsesPerPixelOpacity Właściwość na HwndSourceParameters true .To enable this, set the UsesPerPixelOpacity property in the HwndSourceParameters to true. Tę właściwość można określić tylko w czasie konstruowania i tylko za pomocą HwndSource(HwndSourceParameters) podpisu konstruktora i nakładają kilka ograniczeń.This property can only be specified at construction time, and only through the HwndSource(HwndSourceParameters) constructor signature, and it imposes several limitations.

Po wypełnieniu HwndSourceParameters struktury należy przekazać ją do HwndSource(HwndSourceParameters) konstruktora dla elementu HwndSource .After you populate the HwndSourceParameters structure, pass it to the HwndSource(HwndSourceParameters) constructor for the HwndSource.

Okres istnienia obiektuObject Lifetime

HwndSourceJest to zwykły obiekt środowiska uruchomieniowego języka wspólnego (CLR), a jego okres istnienia jest zarządzany przez moduł wyrzucania elementów bezużytecznych.An HwndSource is a regular common language runtime (CLR) object, and its lifetime is managed by the garbage collector. Ponieważ HwndSource reprezentuje zasób niezarządzany, HwndSource implementuje IDisposable .Because the HwndSource represents an unmanaged resource, HwndSource implements IDisposable. Synchroniczne wywoływanie Dispose powoduje natychmiastowe zniszczenie okna Win32 w przypadku wywołania z wątku będącego właścicielem.Synchronously calling Dispose immediately destroys the Win32 window if called from the owner thread. Jeśli wywoływana z innego wątku, okno Win32 jest niszczone asynchronicznie.If called from another thread, the Win32 window is destroyed asynchronously. Wywoływanie Dispose jawnie z kodu międzyoperacyjnego może być konieczne w przypadku niektórych scenariuszy międzyoperacyjnych.Calling Dispose explicitly from the interoperating code might be necessary for certain interoperation scenarios.

Procedury oknaWindow Procedures

HwndSourceKlasa implementuje własną procedurę okna.The HwndSource class implements its own window procedure. Ta procedura okna służy do przetwarzania ważnych komunikatów okna, takich jak te powiązane z układem, renderowaniem i danymi wejściowymi.This window procedure is used to process important window messages, such as those related to layout, rendering, and input. Można jednak również podłączyć procedurę okna do własnego użytku.However, you can also hook the window procedure for your own use. Możesz określić własny punkt zaczepienia podczas konstruowania przez ustawienie HwndSourceParameters.HwndSourceHook właściwości lub można również użyć AddHook i RemoveHook do dodawania i usuwania punktów zaczepienia po utworzeniu okna.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. Punkty zaczepienia są wywoływane przez ostatnią kolejność w pierwszej kolejności, co umożliwia wykonywanie punktów zaczepienia przed wbudowanym przetwarzaniem.The hooks are called by last-in first-out order, which enables your hooks to execute before the built-in processing. Rzeczywiste punkty zaczepienia są przechowywane przez słabe odwołanie.The actual hooks are held by a weak reference. W związku z tym upewnij się, że zarządzasz okresem istnienia delegata punktu zaczepienia.Therefore, make sure that you manage the lifetime of your hook delegate.

Aby uzyskać więcej informacji na temat HwndSource i innych klas międzyoperacyjnych, zobacz WPF i Win32 — współdziałanie.For more information about HwndSource and other interoperation classes, see WPF and Win32 Interoperation.

Zwróć uwagę, jak konstruktory dla HwndSource pobierają parametry podobne do parametrów dla funkcji Win32, takich jak elementu CreateWindowEx.Notice how the constructors for HwndSource take parameters that resemble the parameters for Win32 functions such as CreateWindowEx.

Przekształceń skali nie należy stosować do RootVisual obiektu HwndSource .Scale transformations should not be applied to the RootVisual of an HwndSource. Zobacz uwagi dla RootVisual .See Remarks for RootVisual.

Konstruktory

HwndSource(HwndSourceParameters)

Inicjuje nowe wystąpienie HwndSource klasy przy użyciu struktury zawierającej ustawienia początkowe.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)

Inicjuje nowe wystąpienie HwndSource klasy z określonym stylem klasy, stylem, stylem rozszerzonym, pozycją x-y, szerokości, wysokości, nazwy i oknem nadrzędnym.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)

Inicjuje nowe wystąpienie HwndSource klasy z określonym stylem klasy, stylem, stylem rozszerzonym, pozycją x-y, szerokości, wysokości, nazwą i oknem nadrzędnym, a także określając, czy okno ma rozmiar AutoSize.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)

Inicjuje nowe wystąpienie HwndSource klasy z określonym stylem klasy, stylem, stylem rozszerzonym, pozycją x-y, nazwą i oknem nadrzędnym.Initializes a new instance of the HwndSource class with a specified class style, style, extended style, x-y position, name, and parent window.

Właściwości

AcquireHwndFocusInMenuMode

Pobiera wartość określającą, czy uzyskać fokus Win32 dla platformy WPF zawierającej okno HwndSource .Gets the value that determines whether to acquire Win32 focus for the WPF containing window for this HwndSource.

ChildKeyboardInputSinks

Pobiera sekwencję zarejestrowanych ujścia danych wejściowych.Gets a sequence of registered input sinks.

CompositionTarget

Pobiera program Visual Manager dla hostowanego okna.Gets the visual manager for the hosted window.

DefaultAcquireHwndFocusInMenuMode

Pobiera lub ustawia wartość domyślną AcquireHwndFocusInMenuMode dla nowych wystąpień HwndSource .Gets or sets the default AcquireHwndFocusInMenuMode value for new instances of HwndSource.

Dispatcher

Pobiera Dispatcher ten DispatcherObject program jest skojarzony z.Gets the Dispatcher this DispatcherObject is associated with.

(Odziedziczone po DispatcherObject)
Handle

Pobiera uchwyt okna dla tego elementu HwndSource .Gets the window handle for this HwndSource.

IsDisposed

Pobiera wartość wskazującą, czy Dispose() została wywołana HwndSource .Gets a value that indicates whether Dispose() has been called on this HwndSource.

KeyboardInputSiteCore

Pobiera lub ustawia odwołanie do interfejsu container's składnika IKeyboardInputSite .Gets or sets a reference to the component's container's IKeyboardInputSite interface.

RestoreFocusMode

Pobiera RestoreFocusMode dla okna.Gets the RestoreFocusMode for the window.

RootVisual

Pobiera lub ustawia RootVisual okno.Gets or sets the RootVisual of the window.

SizeToContent

Pobierz lub określ, czy i w jaki sposób rozmiar okna ma być ustawiony na jego zawartość.Get or sets whether and how the window is sized to its content.

UsesPerPixelOpacity

Pobiera wartość, która deklaruje, czy poziom przezroczystości zawartości okna źródłowego jest przestrzegany.Gets a value that declares whether the per-pixel opacity of the source window content is respected.

Metody

AddHook(HwndSourceHook)

Dodaje procedurę obsługi zdarzeń, która odbiera wszystkie komunikaty okna.Adds an event handler that receives all window messages.

AddSource()

Dodaje PresentationSource wystąpienie klasy pochodnej do listy znanych źródeł prezentacji.Adds a PresentationSource derived class instance to the list of known presentation sources.

(Odziedziczone po PresentationSource)
CheckAccess()

Określa, czy wątek wywołujący ma dostęp do tego DispatcherObject .Determines whether the calling thread has access to this DispatcherObject.

(Odziedziczone po DispatcherObject)
ClearContentRenderedListeners()

Ustawia listę odbiorników dla ContentRendered zdarzenia null .Sets the list of listeners for the ContentRendered event to null.

(Odziedziczone po PresentationSource)
CreateHandleRef()

Pobiera uchwyt okna dla HwndSource .Gets the window handle for the HwndSource. Uchwyt okna jest spakowany jako część HandleRef struktury.The window handle is packaged as part of a HandleRef structure.

Dispose()

Zwalnia wszystkie zarządzane zasoby, które są używane przez HwndSource program, i wywołuje Disposed zdarzenie.Releases all managed resources that are used by the HwndSource, and raises the Disposed event.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
FromHwnd(IntPtr)

Zwraca HwndSource obiekt określonego okna.Returns the HwndSource object of the specified window.

GetCompositionTargetCore()

Pobiera obiekt docelowy wizualizacji okna.Gets the visual target of the window.

GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
HasFocusWithinCore()

Pobiera wartość wskazującą, czy obiekt sink lub jeden z jego składników ma fokus.Gets a value that indicates whether the sink or one of its contained components has focus.

MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
OnDpiChanged(HwndDpiChangedEventArgs)

Wywoływana, gdy wartość DPI zostanie zmieniona dla okna.Called when the DPI is going to change for the window.

OnMnemonicCore(MSG, ModifierKeys)

Wywołuje się, gdy wywoływana jest jedna z symboli (klawisze dostępu) dla tego ujścia.Called when one of the mnemonics (access keys) for this sink is invoked.

RegisterKeyboardInputSinkCore(IKeyboardInputSink)

Rejestruje IKeyboardInputSink interfejs zawartego składnika.Registers the IKeyboardInputSink interface of a contained component.

RemoveHook(HwndSourceHook)

Usuwa programy obsługi zdarzeń, które zostały dodane przez AddHook(HwndSourceHook) .Removes the event handlers that were added by AddHook(HwndSourceHook).

RemoveSource()

Usuwa PresentationSource wystąpienie klasy pochodnej z listy znanych źródeł prezentacji.Removes a PresentationSource derived class instance from the list of known presentation sources.

(Odziedziczone po PresentationSource)
RootChanged(Visual, Visual)

Zapewnia powiadomienie, że katalog główny Visual został zmieniony.Provides notification that the root Visual has changed.

(Odziedziczone po PresentationSource)
TabIntoCore(TraversalRequest)

Ustawia fokus na pierwszym tabulatorze lub ostatnim tabulatorem ujścia.Sets focus on either the first tab stop or the last tab stop of the sink.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)
TranslateAcceleratorCore(MSG, ModifierKeys)

Przetwarza dane wejściowe z klawiatury na poziomie komunikatu klucza.Processes keyboard input at the key-down message level.

TranslateCharCore(MSG, ModifierKeys)

Przetwarza WM_CHAR, WM_SYSCHAR, WM_DEADCHAR i WM_SYSDEADCHAR komunikaty wejściowe przed OnMnemonic(MSG, ModifierKeys) wywołaniem metody.Processes WM_CHAR, WM_SYSCHAR, WM_DEADCHAR, and WM_SYSDEADCHAR input messages before the OnMnemonic(MSG, ModifierKeys) method is called.

VerifyAccess()

Wymusza, że wątek wywołujący ma dostęp do tego DispatcherObject .Enforces that the calling thread has access to this DispatcherObject.

(Odziedziczone po DispatcherObject)

Zdarzenia

AutoResized

Występuje, gdy układ powoduje HwndSource automatyczne zmienianie rozmiaru.Occurs when layout causes the HwndSource to automatically resize.

ContentRendered

Występuje, gdy zawartość jest renderowana i gotowa do interakcji z użytkownikiem.Occurs when content is rendered and ready for user interaction.

(Odziedziczone po PresentationSource)
Disposed

Występuje, gdy Dispose() Metoda jest wywoływana dla tego obiektu.Occurs when the Dispose() method is called on this object.

DpiChanged

Występuje, gdy wartość DPI monitora tego elementu HWND została zmieniona lub właściwość HWND jest przenoszona do monitora z inną wartością DPI.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

Występuje, gdy wartość właściwości zostanie SizeToContent zmieniona.Occurs when the value of the SizeToContent property changes.

Jawne implementacje interfejsu

IKeyboardInputSink.HasFocusWithin()

Aby uzyskać opis tego elementu członkowskiego, zobacz IList.Remove(Object) .For a description of this member, see IList.Remove(Object).

IKeyboardInputSink.KeyboardInputSite

Aby uzyskać opis tego elementu członkowskiego, zobacz KeyboardInputSite .For a description of this member, see KeyboardInputSite.

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

Aby uzyskać opis tego elementu członkowskiego, zobacz OnMnemonic(MSG, ModifierKeys) .For a description of this member, see OnMnemonic(MSG, ModifierKeys).

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

Aby uzyskać opis tego elementu członkowskiego, zobacz RegisterKeyboardInputSink(IKeyboardInputSink) .For a description of this member, see RegisterKeyboardInputSink(IKeyboardInputSink).

IKeyboardInputSink.TabInto(TraversalRequest)

Aby uzyskać opis tego elementu członkowskiego, zobacz TabInto(TraversalRequest) .For a description of this member, see TabInto(TraversalRequest).

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

Aby uzyskać opis tego elementu członkowskiego, zobacz TranslateAccelerator(MSG, ModifierKeys) .For a description of this member, see TranslateAccelerator(MSG, ModifierKeys).

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

Aby uzyskać opis tego elementu członkowskiego, zobacz TranslateChar(MSG, ModifierKeys) .For a description of this member, see TranslateChar(MSG, ModifierKeys).

Dotyczy

Zobacz też