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í k dispozici v zóně zabezpečení Internetu.

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 zadávání. Vzhledem k tomu, že HwndSource je speciálně navržen pro spolupráci s Win32, tato třída zveřejňuje několik funkcí Win32 nízké úrovně. Pomocí této třídy můžete provádět následující akce:

  • Zadejte styly oken, styly tříd oken a rozšířené styly oken.

  • Zahodí proceduru okna.

  • Poskytněte přístup k popisovači okna (HWND).

  • Zničte okno.

Třída je navržena HwndSource pro obecnou interoperabilitu a není navržena jako spravovaná obálka HWND. Obecně neposkytuje spravované metody pro manipulaci s oknem ani vlastnosti pro kontrolu jeho stavu. Místo toho HwndSource třída poskytuje přístup k popisovači okna Win32 (HWND) prostřednictvím Handle vlastnosti, která může být předána prostřednictvím PInvoke techniky rozhraní API Win32 za účelem manipulace s oknem.

Stavebnictví

Mnoho aspektů je HwndSource možné zadat pouze v době výstavby. Pokud chcete vytvořit HwndSource, nejprve vytvořte HwndSourceParameters strukturu a naplňte ji požadovanými parametry. Mezi tyto parametry patří:

  • Třída, okno a rozšířené styly oken. Ke změně stylů po vytvoření okna je nutné použít PInvoke. Ne všechny styly je možné po vytvoření okna změnit. Před změnou stylů oken si projděte dokumentaci k Win32.

  • Počáteční pozice okna.

  • Počáteční velikost okna, která zahrnuje, zda je velikost zadaná nebo by měla být určena z určené velikosti obsahu WPF.

  • Nadřazené okno.

  • Řetězec HwndSourceHook , který se má zahrnout do řetězce procedur okna. Pokud zadáte háček v době výstavby, obdrží všechny zprávy pro okno. Můžete použít AddHook k přidání háku po vytvoření okna.

  • Nastavení průhlednosti. Okno nejvyšší úrovně lze nakonfigurovat tak, aby se splývá s ostatními okny na ploše v závislosti na průhlednosti obsahu WPF podle pixelů. Pokud to chcete povolit, nastavte UsesPerPixelOpacity vlastnost v na trueHwndSourceParameters . 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 ji předejte konstruktoru HwndSource(HwndSourceParameters)HwndSourcepro .

Doba života objektu

Je HwndSource běžný objekt modulu CLR (Common Language Runtime) a jeho životnost spravuje systém uvolňování paměti. Protože objekt HwndSource 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 je volána z jiného vlákna, okno Win32 je zničen asynchronně. Pro určité scénáře vzájemné spolupráce může být nutné explicitní volání Dispose z interoperačního kódu.

Procedury okna

Třída HwndSource implementuje vlastní proceduru okna. Tato procedura okna se používá ke zpracování důležitých zpráv okna, jako jsou zprávy související s rozložením, vykreslováním a vstupem. Můžete ale také připojit proceduru okna pro vlastní použití. Můžete zadat vlastní hák během výstavby 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í v pořadí, ve kterém se poprvé vyvolají, což umožňuje, aby se vaše háky spustily před integrovaným zpracováním. Skutečné háčky jsou drženy slabým odkazem. Proto se ujistěte, že spravujete životnost delegáta háku.

Další informace o třídách a dalších třídách pro spolupráci najdete v tématu WpF a Win32 Interoperation.For more information about HwndSource and other interoperation classes, see WPF and Win32 Interoperation.

Všimněte si, jak konstruktory pro HwndSource převzetí parametrů, které se podobají parametrům pro funkce Win32, například CreateWindowEx.

Transformace škálování by neměly být použity u objektu RootVisualHwndSource. Viz Poznámky pro RootVisual.

Konstruktory

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)

Inicializuje novou instanci HwndSource třídy se zadaným stylem třídy, stylem, rozšířeným stylem, pozicí x-y, šířkou, výškou, názvem a nadřazeným oknem.

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 je okno automaticky rozděleno.

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, pozicí x-y, názvem a nadřazeným oknem.

Vlastnosti

AcquireHwndFocusInMenuMode

Získá hodnotu, která určuje, zda získat win32 fokus pro WPF obsahující okno pro tento HwndSource.

ChildKeyboardInputSinks

Získá sekvenci registrovaných vstupních jímek.

CompositionTarget

Získá správce vizuálu pro hostované okno.

DefaultAcquireHwndFocusInMenuMode

Získá nebo nastaví výchozí AcquireHwndFocusInMenuMode hodnotu pro nové instance .HwndSource

Dispatcher

Získá to DispatcherDispatcherObject je přidružena k.

(Zděděno od DispatcherObject)
Handle

Získá popisovač okna pro tento 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á pro RestoreFocusMode okno .

RootVisual

Získá nebo nastaví RootVisual okno.

SizeToContent

Získá nebo nastaví, jestli a jak má okno velikost jeho obsahu.

UsesPerPixelOpacity

Získá hodnotu, která deklaruje, zda je respektována neprůhlednost obsahu zdrojového okna.

Metody

AddHook(HwndSourceHook)

Přidá obslužnou rutinu události, která přijímá všechny zprávy okna.

AddSource()

Přidá instanci odvozené PresentationSource 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ů pro ContentRendered událost na null.

(Zděděno od PresentationSource)
CreateHandleRef()

Získá popisovač okna pro HwndSource. Úchyt okna je zabalen jako součást HandleRef struktury.

Dispose()

Uvolní všechny spravované prostředky, které používá HwndSource, a vyvolá Disposed událost .

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
FromHwnd(IntPtr)

HwndSource Vrátí objekt zadaného okna.

GetCompositionTargetCore()

Získá vizuální cíl okna.

GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z 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 součástí má fokus.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
OnDpiChanged(HwndDpiChangedEventArgs)

Volá se, když se změní DPI okna.

OnMnemonicCore(MSG, ModifierKeys)

Volá se při vyvolání jedné z mnemotechnických (přístupových kláves) pro tuto jímku.

RegisterKeyboardInputSinkCore(IKeyboardInputSink)

Registruje IKeyboardInputSink rozhraní obsažené komponenty.

RemoveHook(HwndSourceHook)

Odebere obslužné rutiny událostí, které byly přidány nástrojem AddHook(HwndSourceHook).

RemoveSource()

Odebere instanci odvozené PresentationSource třídy ze seznamu známých zdrojů prezentace.

(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í nebo poslední zarážku 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 z klávesnice na úrovni zprávy stisknutou klávesou.

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

AutoResized

Vyvolá se, když rozložení způsobí, že HwndSource se automaticky změní velikost.

ContentRendered

Vyvolá se, když je obsah vykreslen a připraven k interakci uživatele.

(Zděděno od PresentationSource)
Disposed

Vyvolá se při zavolání Dispose() metody u tohoto objektu.

DpiChanged

Nastane, když se změní DPI monitoru tohoto Hwndu nebo hwnd se přesune na monitor s jiným DPI.

SizeToContentChanged

Vyvolá se při změně hodnoty SizeToContent vlastnosti.

Explicitní implementace rozhraní

IKeyboardInputSink.HasFocusWithin()

Popis tohoto člena najdete v tématu IList.Remove(Object).

IKeyboardInputSink.KeyboardInputSite

Popis tohoto člena najdete v tématu KeyboardInputSite.

IKeyboardInputSink.OnMnemonic(MSG, ModifierKeys)

Popis tohoto člena najdete v tématu OnMnemonic(MSG, ModifierKeys).

IKeyboardInputSink.RegisterKeyboardInputSink(IKeyboardInputSink)

Popis tohoto člena najdete v tématu RegisterKeyboardInputSink(IKeyboardInputSink).

IKeyboardInputSink.TabInto(TraversalRequest)

Popis tohoto člena najdete v tématu TabInto(TraversalRequest).

IKeyboardInputSink.TranslateAccelerator(MSG, ModifierKeys)

Popis tohoto člena najdete v tématu TranslateAccelerator(MSG, ModifierKeys).

IKeyboardInputSink.TranslateChar(MSG, ModifierKeys)

Popis tohoto člena najdete v tématu TranslateChar(MSG, ModifierKeys).

Platí pro

Viz také