HwndSource Klasa

Definicja

Przedstawia zawartość Windows Presentation Foundation (WPF) w oknie 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
Dziedziczenie
Implementuje

Uwagi

Ważne

Wielu członków tej klasy jest niedostępnych w strefie zabezpieczeń w Internecie.

Element HwndSource implementuje okno Win32, które może zawierać zawartość WPF. Zawartość WPF w oknie jest rozmieszczana, mierzona i renderowana; element jest interaktywny do danych wejściowych. Ponieważ jest HwndSource przeznaczony specjalnie do współdziałania z Win32, ta klasa uwidacznia kilka funkcji Win32 niskiego poziomu. Możesz użyć tej klasy, aby wykonać następujące czynności:

  • Określ style okien, style klas okien i rozszerzone style okien.

  • Podłącz procedurę okna.

  • Zapewnianie dostępu do dojścia okna (HWND).

  • Zniszczyć okno.

Klasa jest przeznaczona HwndSource do ogólnego współdziałania i nie jest zaprojektowana jako zarządzana otoka HWND. Ogólnie rzecz biorąc, nie zapewnia metod zarządzanych do manipulowania oknem lub właściwościami na potrzeby inspekcji stanu. HwndSource Zamiast tego klasa zapewnia dostęp do uchwytu okna Win32 (HWND) za pośrednictwem Handle właściwości, którą można przekazać za pomocą technik PInvoke do interfejsów API Win32 w celu manipulowania oknem.

Budownictwo

Wiele aspektów HwndSource obiektu można określić tylko w czasie budowy. Aby utworzyć obiekt HwndSource, najpierw utwórz HwndSourceParameters strukturę i wypełnij ją żądanymi parametrami. Te parametry obejmują następujące elementy:

  • Style klasy, okna i rozszerzonego okna. Aby zmienić style po utworzeniu okna, należy użyć funkcji PInvoke. Nie wszystkie style można zmienić po utworzeniu okna. Przed zmianą stylów okna zapoznaj się z dokumentacją win32.

  • Początkowa pozycja okna.

  • Początkowy rozmiar okna, który zawiera informacje o tym, czy rozmiar jest określony, czy powinien zostać określony z określonego rozmiaru zawartości WPF.

  • Okno nadrzędne.

  • Element HwndSourceHook do uwzględnienia w łańcuchu procedur okna. Jeśli określisz hak w czasie budowy, otrzyma wszystkie komunikaty dla okna. Możesz użyć AddHook polecenia , aby dodać punkt zaczepienia po utworzeniu okna.

  • Ustawienia przezroczystości. Okno najwyższego poziomu można skonfigurować do mieszania z innymi oknami na pulpicie zgodnie z przezroczystością zawartości WPF na piksel. Aby to włączyć, ustaw UsesPerPixelOpacity właściwość w HwndSourceParameters obiekcie na truewartość . Tę właściwość można określić tylko w czasie budowy i tylko za pomocą HwndSource(HwndSourceParameters) podpisu konstruktora i nakłada kilka ograniczeń.

Po wypełnieniu HwndSourceParameters struktury przekaż ją do konstruktora HwndSource(HwndSourceParameters) dla elementu HwndSource.

Okres istnienia obiektu

Jest HwndSource to zwykły obiekt środowiska uruchomieniowego języka wspólnego (CLR), a jego okres istnienia jest zarządzany przez moduł odśmiecający pamięci. Ponieważ obiekt HwndSource reprezentuje zasób niezarządzany, HwndSource implementuje IDisposableelement . Synchroniczne wywoływanie Dispose natychmiast niszczy okno Win32, jeśli zostanie wywołane z wątku właściciela. W przypadku wywołania z innego wątku okno Win32 jest niszczone asynchronicznie. Wywoływanie Dispose jawnie z kodu współdziałania może być konieczne w przypadku niektórych scenariuszy współdziałania.

Procedury okienne

Klasa HwndSource implementuje własną procedurę okna. Ta procedura okna służy do przetwarzania ważnych komunikatów okna, takich jak te związane z układem, renderowaniem i danymi wejściowymi. Można jednak również podłączyć procedurę okna do własnego użytku. Możesz określić własny hak podczas budowy, ustawiając HwndSourceParameters.HwndSourceHook właściwość, lub możesz również użyć AddHook polecenia i RemoveHook dodać i usunąć haki po utworzeniu okna. Punkty zaczepienia są wywoływane przez kolejność last-in first-out, co umożliwia wykonywanie punktów zaczepienia przed wbudowanym przetwarzaniem. Rzeczywiste haki są utrzymywane przez słabe odwołanie. Dlatego upewnij się, że zarządzasz okresem istnienia delegata haka.

Aby uzyskać więcej informacji na temat HwndSource i innych klas współdziałania, zobacz WPF i Win32 Interoperation.

Zwróć uwagę, jak konstruktory do HwndSource wykonywania parametrów przypominające parametry funkcji Win32, takich jak CreateWindowEx.

Przekształcenia skalowania nie powinny być stosowane do RootVisual elementu HwndSource. Zobacz uwagi dotyczące .RootVisual

Konstruktory

HwndSource(HwndSourceParameters)

Inicjuje HwndSource nowe wystąpienie klasy przy użyciu struktury zawierającej ustawienia początkowe.

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

Inicjuje HwndSource nowe wystąpienie klasy z określonym stylem klasy, stylem, stylem rozszerzonym, położeniem x-y, szerokością, wysokością, nazwą i oknem nadrzędnym.

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 oraz określając, czy okno jest automatycznie generowane.

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

Inicjuje HwndSource nowe wystąpienie klasy z określonym stylem klasy, stylem, stylem rozszerzonym, pozycją x-y, nazwą i oknem nadrzędnym.

Właściwości

AcquireHwndFocusInMenuMode

Pobiera wartość określającą, czy uzyskać fokus Win32 dla WPF zawierającego okno dla tego HwndSource.

ChildKeyboardInputSinks

Pobiera sekwencję zarejestrowanych ujść danych wejściowych.

CompositionTarget

Pobiera menedżera wizualizacji dla hostowanego okna.

DefaultAcquireHwndFocusInMenuMode

Pobiera lub ustawia wartość domyślną AcquireHwndFocusInMenuMode dla nowych wystąpień klasy HwndSource.

Dispatcher

Pobiera element, z Dispatcher który DispatcherObject jest skojarzony.

(Odziedziczone po DispatcherObject)
Handle

Pobiera uchwyt okna dla tego HwndSourceelementu .

IsDisposed

Pobiera wartość wskazującą, czy Dispose() element został wywołany dla tego elementu HwndSource.

KeyboardInputSiteCore

Pobiera lub ustawia odwołanie do interfejsu kontenera IKeyboardInputSite składnika.

RestoreFocusMode

Pobiera element RestoreFocusMode dla okna.

RootVisual

Pobiera lub ustawia okno RootVisual .

SizeToContent

Pobierz lub ustawia, czy okno ma rozmiar do jego zawartości.

UsesPerPixelOpacity

Pobiera wartość, która deklaruje, czy nieprzezroczystość zawartości okna źródłowego jest uwzględniana.

Metody

AddHook(HwndSourceHook)

Dodaje program obsługi zdarzeń, który odbiera wszystkie komunikaty okna.

AddSource()

PresentationSource Dodaje wystąpienie klasy pochodnej do listy znanych źródeł prezentacji.

(Odziedziczone po PresentationSource)
CheckAccess()

Określa, czy wątek wywołujący ma dostęp do tego DispatcherObjectelementu .

(Odziedziczone po DispatcherObject)
ClearContentRenderedListeners()

Ustawia listę odbiorników dla ContentRendered zdarzenia na null.

(Odziedziczone po PresentationSource)
CreateHandleRef()

Pobiera uchwyt okna dla elementu HwndSource. Uchwyt okna jest spakowany w ramach HandleRef struktury.

Dispose()

Zwalnia wszystkie zarządzane zasoby, które są używane przez HwndSourceelement , i zgłasza Disposed zdarzenie.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
FromHwnd(IntPtr)

HwndSource Zwraca obiekt określonego okna.

GetCompositionTargetCore()

Pobiera element docelowy wizualizacji okna.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
HasFocusWithinCore()

Pobiera wartość wskazującą, czy ujście, czy jeden z zawartych składników ma fokus.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
OnDpiChanged(HwndDpiChangedEventArgs)

Wywoływana, gdy dpi zmieni się dla okna.

OnMnemonicCore(MSG, ModifierKeys)

Wywoływana, gdy jest wywoływany jeden z mnemonics (kluczy dostępu) dla tego ujścia.

RegisterKeyboardInputSinkCore(IKeyboardInputSink)

Rejestruje IKeyboardInputSink interfejs zawartego składnika.

RemoveHook(HwndSourceHook)

Usuwa programy obsługi zdarzeń dodane przez AddHook(HwndSourceHook)program .

RemoveSource()

Usuwa PresentationSource wystąpienie klasy pochodnej z listy znanych źródeł prezentacji.

(Odziedziczone po PresentationSource)
RootChanged(Visual, Visual)

Dostarcza powiadomienie o zmianie katalogu głównego Visual .

(Odziedziczone po PresentationSource)
TabIntoCore(TraversalRequest)

Ustawia fokus na pierwszym zatrzymaniu karty lub ostatnim zatrzymaniu karty ujścia.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TranslateAcceleratorCore(MSG, ModifierKeys)

Przetwarza dane wejściowe klawiatury na poziomie komunikatu w dół klawisza.

TranslateCharCore(MSG, ModifierKeys)

Przetwarza WM_CHAR, WM_SYSCHAR, WM_DEADCHAR i WM_SYSDEADCHAR komunikaty wejściowe przed wywołaniem OnMnemonic(MSG, ModifierKeys) metody.

VerifyAccess()

Wymusza, że wątek wywołujący ma dostęp do tego DispatcherObjectelementu .

(Odziedziczone po DispatcherObject)

Zdarzenia

AutoResized

Występuje, gdy układ powoduje automatyczne zmienianie rozmiaru HwndSource .

ContentRendered

Występuje, gdy zawartość jest renderowana i gotowa do interakcji z użytkownikiem.

(Odziedziczone po PresentationSource)
Disposed

Występuje, gdy metoda jest wywoływana Dispose() dla tego obiektu.

DpiChanged

Występuje, gdy dpi monitora tego Hwnd uległ zmianie lub Hwnd jest przenoszony do monitora z inną dpi.

SizeToContentChanged

Występuje, gdy wartość SizeToContent właściwości się zmienia.

Jawne implementacje interfejsu

IKeyboardInputSink.HasFocusWithin()

Aby uzyskać opis tego członka, zobacz IList.Remove(Object).

IKeyboardInputSink.KeyboardInputSite

Aby uzyskać opis tego członka, zobacz KeyboardInputSite.

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

Aby uzyskać opis tego członka, zobacz OnMnemonic(MSG, ModifierKeys).

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

Aby uzyskać opis tego członka, zobacz RegisterKeyboardInputSink(IKeyboardInputSink).

IKeyboardInputSink.TabInto(TraversalRequest)

Aby uzyskać opis tego członka, zobacz TabInto(TraversalRequest).

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

Aby uzyskać opis tego członka, zobacz TranslateAccelerator(MSG, ModifierKeys).

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

Aby uzyskać opis tego członka, zobacz TranslateChar(MSG, ModifierKeys).

Dotyczy

Zobacz też