Systemeigene WPF-APIs mit Unterstützung für das Hosten in Browsern

Das Hosting von WPF-Anwendungen in Webbrowsern wird durch einen Active Document-Server (auch „DocObject“ genannt) erleichtert, der über den WPF-Hosts registriert wird. Der Internet Explorer kann eine Active Document-Instanz direkt aktivieren und integrieren. Für das Hosting von XBAPs und Loose XAML-Dokumenten in Mozilla-Browsern bietet WPF ein NPAPI-Plug-In, das eine ähnliche Hostingumgebung für den WPF-Active Document-Server bietet wie der Internet Explorer. Der einfachste und bequemste Weg, XBAPs und XAML-Dokumente in anderen Browsern und eigenständigen Anwendungen zu hosten, ist jedoch das Webbrowser-Steuerelement von Internet Explorer. Das Webbrowser-Steuerelement stellt die komplexe Hostingumgebung von Active Document-Server zur Verfügung, ermöglicht es jedoch seinem eigenen Host, diese Umgebung anzupassen und zu erweitern und direkt mit dem aktuellen Active Document-Objekt zu kommunizieren.

Warnung

XBAPs erfordern Legacybrowser, z. B. Internet Explorer und Firefox. Diese älteren Browserversionen werden unter Windows 10 und Windows 11 normalerweise nicht unterstützt. Moderne Browser unterstützen die für XBAP-Apps erforderliche Technologie aufgrund von Sicherheitsrisiken nicht mehr. Plug-Ins, die XBAPs aktivieren, werden nicht mehr unterstützt.

Der WPF-Active Document-Server implementiert mehrere gängige Hostingschnittstellen, darunter IOleObject, IOleDocument, IOleInPlaceActiveObject, IPersistMoniker und IOleCommandTarget. Wenn diese Schnittstellen im Webbrowser-Steuerelement gehostet werden, können sie von dem Objekt abgefragt werden, das von der Eigenschaft IWebBrowser2::Document zurückgegeben wird.

IOleCommandTarget

Die Implementierung von IOleCommandTarget des WPF-Active Document-Servers unterstützt zahlreiche navigationsbezogene und browserspezifische Befehle der Standard-OLE-Befehlsgruppe (mit einer Befehlsgruppen-GUID von NULL). Darüber hinaus wird eine benutzerdefinierte Befehlsgruppe namens „CGID_PresentationHost“ erkannt. Derzeit gibt es nur einen Befehl, der in dieser Gruppe definiert ist.

DEFINE_GUID(CGID_PresentationHost, 0xd0288c55, 0xd6, 0x4f5e, 0xa8, 0x51, 0x79, 0xde, 0xc5, 0x1b, 0x10, 0xec);  
enum PresentationHostCommands {
   PHCMDID_TABINTO = 1
};  

PHCMDID_TABINTO weist „PresentationHost“ an, den Fokus auf das erste oder letzte fokussierbare Element in seinem Inhalt zu setzen, abhängig vom Status der Umschalttaste.

In diesem Abschnitt

IEnumRAWINPUTDEVICE
IWpfHostSupport