Wpf – way to render WPF controls on top of the wpf WebBrowser control

browserwpfxaml

I need an embedded WebBrowser control in my application, and am having problems displaying WPF content on top of it. The application will sometimes show popups for editing data or to display errors, and the WebBrowser is getting drawn on top of the popups because it is a WinForms control.

The alternative I looked at here uses a Popup control to put items on top of the WebBrowser control, however my problem with Popups is they stay open when you switch to another application, and they do not move with your application when the user resizes/moves the app.

Is there an alternative way I could do this? The embedded web content is aspx pages and so not static HTML.

Best Answer

Embedded WebBrowsers suck, unfortunately. If you're displaying actual, real, dynamic web content in your WebBrowser, you have to go through the pain of linking another Window to your hosted WebBrowser's window, and handling moving/resizing/et al yourself. I haven't seen another way that works.

If you're displaying static content (or content from a source that you can control or influence), you might consider displaying, say, RTF docs in a DocumentViewer instead, which doesn't have the icky airspace issues of the WebBrowser control.