Do WPF hyperlinks only work in pages? - wpf

I'm new to the Hyperlink control. I wish to have a hyperlink in a regular WPF window which will navigate to a URL by opening the standard browser. I have added the hyperlink, but it does nothing.
Before I implement a handler to do the work myself, can anyone please confirm that the Hyperlink control will navigate only within pages?

You will need to do it yourself.
The simplest way to do it is to handle the Hyperlink.RequestNavigate event and call Process.Start with the URL. (This will open the default browser).

Related

How to close previous window when it redirects to another window in wpf mvvm using caliburn micro?

I am using caliburn micro in my project with mvvm architecure. I created on user control with a single button. when i click on the button it is redirecting to another user control. But the problem is when i redirect to another window, it is attaching to the previous window.
So, can any one help me to how to close the previous window when it redirects to another window.?
Thanks.
This is an old question, but the way I would go about solving this issue is use IoC/MEF to get a reference to the window manager, do a WindowManager.CreateWindow(NewViewModel) to open a new window, then TryClose() the old window.

WebBrowser control doesn't open links

I'm using the default WebBrowser control inside a WPF application. HTML code is loaded using NavigateToString method (html is passed as a parameter).
Pages render correctly, but users aren't able to click on any links (nothing happens when they click on the links). The problem was partly solved by adding the URLs to trusted zone, but that is not always possible.
Are there any configurations that should be adjusted in IE (or wherever else) that would allow opening any links inside an embedded WebBrowser?
in my case using MyWebBrowser.Navigate(new Uri(...)); works, and hyperlinks work as designed but when i use MyWebBrowser.NavigateToString(htmlContent); hyperlinks stop working

Embedding of Webbrowser in WPF Form with Address bar + Buttons

I wouldlike to embed a webbrowser in a WPF application. The browser should look like a normal browser, with address bar, back and forward button and status bar. Is there a way how that could easily written in XAML, with a direct databinding of the address to a textbox, with a direct routing of events from the buttons to the webbrowser object, and the enabling back?
Why not?
Here and here are uploaded some screenshots from our application which has WebModule inside and is able to work like browser.
In our implementation we used Windows Forms WebBrowser control as browser engine and MVVM as communication pattern. Model has navigation commands (forward, back, ...) that raise proper events. View is handling this events and delegate requested actions to inner WebBrowser component. Additionally view is handling WebBrowser's events (NewWindow, DocumentCompleted, Navigating, Navigated) and setting up model's state.
Model and view together contain about 500 lines of code (I don't think it's very much, do you?).
Of course, I should mention, that due to using IE engine this browser could have some problems on complicated web-sites.
P.S. We didn't use System.Windows.Controls.WebBrowser because it does not provide access to NewWindow event.
P.P.S. I've posted this answer from browser in our WPF application. Good luck!

Silverlight App inside WPF WebBrowser?

I have a hopefully trivial question. Currently, my company works with a rather obscure language (SyngergyDE) and we need to call a SilverLight application inside our product. Unfortunately, this obscure 3rd party language only (currently) supports the opening of WPF screens. So with that said, I thought I'd develop a small WPF user control that contains a "WebBrowser" control and navigate to the silverlight application's URI. This works fine, and I'm able to see the SL application. Here is my question - we have a "Close" button on the SL application, and when users "Click" that button, we want the window to close.
Does anyone have any suggestions on how we can communicate the "Closing of the SL App" to the WPF user control, so that the entire WPF user control closes as well?
Thanks everyone,
-Tom
Attach an event handler to the WebBrowser.Navigated event.
Have the close button in the Silverlight application use:-
HtmlPage.Window.Navigate(new Uri("about:blank", UriKind.Absolute));
When the Navigated event fires in WPF with the url "about:blank" then its time to close the control.
Use Javascript and the HTML DOM as the glue here.
For example, when the SL app close button is clicked, have Silverlight trigger some Javascript code that sets a flag, or alternately, raises some HTML document event.
The WPF control could poll that flag in the HTML + Javascript, or alternately listen for that HTML document event, then close the user control.

Stop Dragging from a WPF WebBrowser control

I have a WPF application which contains a WebBrowser control.
Currently, the user can select something within the WebBrowser and can copy the content by dragging it out to another application and dropping it there.
I'd like to be able to stop the user doing this. I'd assumed that there would be a "DragStart" event that I could capture and cancel - but I haven't been able to find something so simple.
Is it possible to capture the start of drag event and cancel it?
Is there a better way to achieve this?
You can implement IDocHostUIHandler::FilterDataObject and filter out common clipboard formats
You don't get access the WPF browser's native interface until the document is ready. Not sure if it would work with the WPF browser class. There is also a bug in Windows Forms to prevent you from customizing its implementation of IDocHostUIHandler.
You can try some wrapper class of the webbrowser ActiveX, such as the one described at http://www.codeproject.com/KB/miscctrl/csEXWB.aspx

Resources