HwndSource Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
true
wartość . 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 |
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). |