承载支持 API 的本机 WPF 浏览器
在 WPF 主机之外注册的活动文档服务器(也称为 DocObject)有助于在 Web 浏览器中承载 WPF 应用程序。 Internet Explorer 可以直接激活并集成活动文档。 为了在 Mozilla 浏览器中承载 XBAP 和宽松 XAML 文档,WPF 提供了一个 NPAPI 插件,该插件为 WPF 活动文档服务器提供的宿主环境与 Internet Explorer 提供的类似。 但是,在其他浏览器和独立应用程序中承载 XBAP 和 XAML 文档的最简单实用的方法是通过 Internet Explorer Web 浏览器控件。 Web 浏览器控件提供复杂的活动文档服务器宿主环境,但它使自己的主机能够自定义和扩展该环境,并直接与当前活动文档对象通信。
警告
XBAP 需要旧版浏览器(例如 Internet Explorer 和旧版 Firefox)才能运行。 Windows 10 和 Windows 11 通常不支持这些较旧的浏览器。 由于安全风险,新式浏览器不再支持 XBAP 应用所需的技术。 不再支持启用 XBAP 的插件。 有关详细信息,请参阅有关 WPF 浏览器托管应用程序 (XBAP) 的常见问题解答。
WPF 活动文档服务器实现多个常见的承载接口,包括 IOleObject、IOleDocument、IOleInPlaceActiveObject、IPersistMoniker、IOleCommandTarget。 在 Web 浏览器控件中承载时,可以从 IWebBrowser2::Document 属性返回的对象查询这些接口。
IOleCommandTarget
WPF 活动文档服务器的 IOleCommandTarget 实现支持标准 OLE 命令组的许多导航相关命令和特定于浏览器的命令(具有 null 命令组 GUID)。 此外,它还可识别名为 CGID_PresentationHost 的自定义命令组。 目前,此组中只定义了一个命令。
DEFINE_GUID(CGID_PresentationHost, 0xd0288c55, 0xd6, 0x4f5e, 0xa8, 0x51, 0x79, 0xde, 0xc5, 0x1b, 0x10, 0xec);
enum PresentationHostCommands {
PHCMDID_TABINTO = 1
};
PHCMDID_TABINTO 指示 PresentationHost 根据其内容中的第一个或最后一个可聚焦元素切换焦点,具体取决于 Shift 键的状态。