Sdílet prostřednictvím


HwndSource Třída

Definice

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 HwndSourceParameterstrue. 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 nullhodnotu .

(Zděděno od PresentationSource)
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).

Platí pro

Viz také