XBAPs

The final navigation host that WPF provides is an internal class called RootBrowserWindow. Like NavigationWindow and Frame, the RootBrowserWindow knows how to host content for navigation. However, RootBrowserWindow does it by integrating with versions 6 and later of Internet Explorer[80] in order to implement XAML Browser Applications (XBAPs). An XBAP is a WPF application with these characteristics:

  • Hosted in IE6+ like loose XAML pages (although they're compiled), whether at the top level or inside an IFRAME. In fact, you're meant to be able to click back and forth between HTML and XBAPs without knowing that you're doing so (except that the XBAP pages are "better").

  • No custom top-level windows. You must use the RootBrowserWindow provided and no other custom top-level windows (e.g., custom dialogs).

  • Runs in partial trust that can't be elevated by users like normal ClickOnce applications.

  • Can be deployed like ClickOnce "online-only" applications. The standard ClickOnce "offline/online" deployment is available if your main window is a NavigationWindow, but it won't be hosted in Internet Explorer.

You can get a new XBAP application skeleton in Visual Studio 2005 by choosing the "XAML Browser Application (WPF)" project template. It will give you a standard navigation application without any window definition, just a page. The chief difference between an XBAP and a standard navigation-based application is the HostInBrowser property set in the project file:

<Project ...> <PropertyGroup> ...

Get Programming WPF, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.