HwndSource Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zobrazí obsah Windows Presentation Foundation (WPF) v okně 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
- Dědičnost
- Implementuje
Poznámky
Důležité
Mnoho členů této třídy není v zóně zabezpečení internetu k dispozici.
Implementuje HwndSource okno Win32, které může obsahovat obsah WPF. Obsah WPF v okně je uspořádán, měřen a vykreslen; a je interaktivní pro vstup. HwndSource Vzhledem k tomu, že je speciálně navržen pro spolupráci s Win32, tato třída zveřejňuje několik funkcí Win32 nízké úrovně. Tuto třídu můžete použít k provedení následujících kroků:
Zadejte styly oken, styly tříd oken a rozšířené styly oken.
Zavěste proceduru okna.
Zadejte přístup k popisovači okna (HWND).
Zničte okno.
Třída HwndSource je navržena pro obecnou interoperabilitu a není navržena jako spravovaný obálka HWND. Obecně neposkytuje spravované metody pro manipulaci s oknem nebo vlastnostmi pro kontrolu jeho stavu. HwndSource Místo toho třída poskytuje přístup k obslužné rutině okna Win32 (HWND) prostřednictvím Handle vlastnosti, která lze předat prostřednictvím technik PInvoke rozhraní API Win32, aby bylo možné manipulovat s oknem.
Konstrukce
Mnoho aspektů HwndSource lze zadat pouze v době výstavby. Pokud chcete vytvořit objekt HwndSource, nejprve vytvořte HwndSourceParameters strukturu a naplňte ji požadovanými parametry. Mezi tyto parametry patří:
Styly oken, oken a rozšířených oken. Po vytvoření okna je nutné použít PInvoke ke změně stylů. Po vytvoření okna nelze změnit všechny styly. Před změnou stylů oken si projděte dokumentaci win32.
Počáteční pozice okna.
Počáteční velikost okna, která zahrnuje, zda je zadána nebo by měla být určena z určené velikosti obsahu WPF.
Nadřazené okno.
Zahrnutí HwndSourceHook do řetězu procedur okna. Pokud zadáte háček v době konstrukce, obdrží všechny zprávy pro okno. Po vytvoření okna můžete přidat AddHook háček.
Nastavení průhlednosti. Okno nejvyšší úrovně lze nakonfigurovat tak, aby bylo možné kombinovat s ostatními okny na ploše podle průhlednosti obsahu WPF na pixelech. Chcete-li tuto možnost povolit, nastavte UsesPerPixelOpacity vlastnost v objektu HwndSourceParameters
true. Tuto vlastnost lze zadat pouze v době výstavby a pouze prostřednictvím podpisu konstruktoru HwndSource(HwndSourceParameters) a má několik omezení.
Po naplnění HwndSourceParameters struktury jej předejte HwndSource(HwndSourceParameters) konstruktoru pro objekt HwndSource.
Životnost objektu
Je HwndSource běžný objekt CLR (Common Language Runtime) a jeho životnost je spravována uvolňováním paměti. HwndSource Protože představuje nespravovaný prostředek, HwndSource implementuje IDisposable. Synchronní volání Dispose okamžitě zničí okno Win32, pokud je volána z vlákna vlastníka. Pokud se volá z jiného vlákna, okno Win32 se asynchronně zničí. Volání Dispose explicitně z interoperačního kódu může být nezbytné pro určité scénáře spolupráce.
Procedury oken
Třída HwndSource implementuje vlastní proceduru okna. Tento postup okna slouží ke zpracování důležitých zpráv oken, jako jsou zprávy související s rozložením, vykreslováním a vstupem. Můžete ale také zavěsit proceduru okna pro vlastní použití. Během sestavování můžete zadat vlastní háček nastavením HwndSourceParameters.HwndSourceHook vlastnosti, nebo můžete také použít AddHook a RemoveHook přidat a odebrat háky po vytvoření okna. Háky se volají podle pořadí posledního v prvním outu, což umožňuje, aby se vaše hooky spouštěly před integrovaným zpracováním. Skutečné háky jsou drženy slabým odkazem. Proto se ujistěte, že spravujete životnost svého delegáta háku.
Další informace o a dalších třídách spolupráce naleznete v HwndSource tématu WPF a Win32 Interoperation.
Všimněte si, jak konstruktory pro HwndSource převzetí parametrů, které se podobají parametrům pro funkce Win32, jako je CreateWindowEx.
Transformace měřítka by neměly být použity na RootVisual objekt .HwndSource Viz Poznámky pro RootVisual.
Konstruktory
| Name | Description |
|---|---|
| HwndSource(HwndSourceParameters) |
Inicializuje novou instanci HwndSource třídy pomocí struktury, která obsahuje počáteční nastavení. |
| HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr, Boolean) |
Inicializuje novou instanci HwndSource třídy se zadaným stylem třídy, stylem, rozšířeným stylem, umístěním x-y, šířkou, výškou, názvem a nadřazeným oknem a určením, zda se okno automaticky zadává. |
| HwndSource(Int32, Int32, Int32, Int32, Int32, Int32, Int32, String, IntPtr) |
Inicializuje novou instanci HwndSource třídy se zadaným stylem třídy, stylem, rozšířeným stylem, umístěním x-y, šířkou, výškou, názvem a nadřazeným oknem. |
| HwndSource(Int32, Int32, Int32, Int32, Int32, String, IntPtr) |
Inicializuje novou instanci HwndSource třídy se zadaným stylem třídy, stylem, rozšířeným stylem, umístěním x-y, názvem a nadřazeným oknem. |
Vlastnosti
| Name | Description |
|---|---|
| AcquireHwndFocusInMenuMode |
Získá hodnotu, která určuje, zda získat Win32 fokus pro WPF obsahující okno pro toto HwndSource. |
| ChildKeyboardInputSinks |
Získá posloupnost registrovaných vstupních jímek. |
| CompositionTarget |
Získá vizuálního manažera pro hostované okno. |
| DefaultAcquireHwndFocusInMenuMode |
Získá nebo nastaví výchozí AcquireHwndFocusInMenuMode hodnotu pro nové instance HwndSource. |
| Dispatcher |
Dispatcher Získá toto DispatcherObject je přidružené. (Zděděno od DispatcherObject) |
| Handle |
Získá popisovač okna pro toto HwndSource. |
| IsDisposed |
Získá hodnotu, která označuje, zda Dispose() byl volána na tomto HwndSource. |
| KeyboardInputSiteCore |
Získá nebo nastaví odkaz na rozhraní kontejneru IKeyboardInputSite komponenty. |
| RestoreFocusMode |
Získá okno RestoreFocusMode . |
| RootVisual |
Získá nebo nastaví RootVisual okno. |
| SizeToContent |
Získejte nebo nastavíte, jestli má okno velikost obsahu. |
| UsesPerPixelOpacity |
Získá hodnotu, která deklaruje, zda je dodržena neprůhlednost obsahu zdrojového okna na pixel. |
Metody
| Name | Description |
|---|---|
| AddHook(HwndSourceHook) |
Přidá obslužnou rutinu události, která přijímá všechny zprávy okna. |
| AddSource() |
Přidá odvozenou PresentationSource instanci třídy do seznamu známých zdrojů prezentace. (Zděděno od PresentationSource) |
| CheckAccess() |
Určuje, zda volající vlákno má přístup k tomuto DispatcherObject. (Zděděno od DispatcherObject) |
| ClearContentRenderedListeners() |
Nastaví seznam naslouchacích procesů události ContentRendered na |
| CreateHandleRef() |
Získá úchyt okna pro HwndSource. Popisovač okna je zabalený jako součást HandleRef struktury. |
| Dispose() |
Uvolní všechny spravované prostředky, které tato služba používá HwndSource, a vyvolá Disposed událost. |
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| FromHwnd(IntPtr) |
HwndSource Vrátí objekt zadaného okna. |
| GetCompositionTargetCore() |
Získá cíl vizuálu okna. |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| HasFocusWithinCore() |
Získá hodnotu, která označuje, zda jímka nebo jedna z jejích obsažených komponent má fokus. |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| OnDpiChanged(HwndDpiChangedEventArgs) |
Volá se, když se pro okno změní DPI. |
| OnMnemonicCore(MSG, ModifierKeys) |
Volá se, když se vyvolá jeden z mnemonics (přístupové klávesy) pro tuto jímku. |
| RegisterKeyboardInputSinkCore(IKeyboardInputSink) |
Zaregistruje IKeyboardInputSink rozhraní obsažené komponenty. |
| RemoveHook(HwndSourceHook) |
Odebere obslužné rutiny událostí přidané uživatelem AddHook(HwndSourceHook). |
| RemoveSource() |
Odebere odvozenou PresentationSource instanci třídy ze seznamu známých prezentačních zdrojů. (Zděděno od PresentationSource) |
| RootChanged(Visual, Visual) |
Poskytuje oznámení o změně kořenového adresáře Visual . (Zděděno od PresentationSource) |
| TabIntoCore(TraversalRequest) |
Nastaví fokus na první zarážce tabulátoru nebo na poslední zarážce tabulátoru jímky. |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
| TranslateAcceleratorCore(MSG, ModifierKeys) |
Zpracovává vstup klávesnice na úrovni zprávy o klávesách dolů. |
| TranslateCharCore(MSG, ModifierKeys) |
Procesy WM_CHAR, WM_SYSCHAR, WM_DEADCHAR a WM_SYSDEADCHAR vstupní zprávy před zavolání OnMnemonic(MSG, ModifierKeys) metody. |
| VerifyAccess() |
Vynucuje, že volající vlákno má přístup k tomuto DispatcherObject. (Zděděno od DispatcherObject) |
Událost
| Name | Description |
|---|---|
| AutoResized |
Nastane, když rozložení způsobí HwndSource automatické změny velikosti. |
| ContentRendered |
Nastane, když se obsah vykreslí a připraví pro interakci uživatele. (Zděděno od PresentationSource) |
| Disposed |
Nastane, Dispose() když metoda je volána na tomto objektu. |
| DpiChanged |
Nastane, když se změní DPI monitoru tohoto Hwndu nebo Hwnd se přesune do monitoru s jiným DPI. |
| SizeToContentChanged |
Nastane, když se změní hodnota SizeToContent vlastnosti. |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| IKeyboardInputSink.HasFocusWithin() |
Popis tohoto člena naleznete v tématu IList.Remove(Object). |
| IKeyboardInputSink.KeyboardInputSite |
Popis tohoto člena naleznete v tématu KeyboardInputSite. |
| IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys) |
Popis tohoto člena naleznete v tématu OnMnemonic(MSG, ModifierKeys). |
| IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink) |
Popis tohoto člena naleznete v tématu RegisterKeyboardInputSink(IKeyboardInputSink). |
| IKeyboardInputSink.TabInto(TraversalRequest) |
Popis tohoto člena naleznete v tématu TabInto(TraversalRequest). |
| IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys) |
Popis tohoto člena naleznete v tématu TranslateAccelerator(MSG, ModifierKeys). |
| IKeyboardInputSink.TranslateChar(MSG, ModifierKeys) |
Popis tohoto člena naleznete v tématu TranslateChar(MSG, ModifierKeys). |