private
string
url = “”;
public
SimpleBrowser()
{
this
.InitializeComponent();
WinFormBrowser.DocumentCompleted +=
new
WebBrowserDocumentCompletedEventHandler(WinFormBrowser_DocumentCompleted);
WinFormBrowser.NewWindow +=
System.ComponentModel.CancelEventHandler(WinFormBrowser_NewWindow);
}
void
WinFormBrowser_DocumentCompleted(
object
sender, WebBrowserDocumentCompletedEventArgs e)
HtmlElementCollection links = WinFormBrowser.Document.Links;
foreach
(HtmlElement var
in
links)
var.AttachEventHandler(“onclick”, LinkClicked);
LinkClicked(
sender, EventArgs e)
HtmlElement link = WinFormBrowser.Document.ActiveElement;
url = link.GetAttribute(
"href"
);
WinFormBrowser_NewWindow(
sender, System.ComponentModel.CancelEventArgs e)
e.Cancel =
true
;
WinFormBrowser.Navigate(url);
<
Grid
x:Name
=
"LayoutRoot"
>
WebBrowser
"MyWebBrowser"
/>
</
using
System.Runtime.InteropServices;
namespace
WpfApplication18
partial
class
MainWindow : Window
static
readonly
Guid SID_SWebBrowserApp =
Guid(
"0002DF05-0000-0000-C000-000000000046"
MainWindow()
InitializeComponent();
.Loaded += MainWindow_Loaded;
MainWindow_Loaded(
sender, RoutedEventArgs e)
MyWebBrowser.Navigate(
"provide the url"
MyWebBrowser.LoadCompleted += MyWebBrowser_LoadCompleted;
MyWebBrowser_LoadCompleted(
sender, NavigationEventArgs e)
IServiceProvider serviceProvider = (IServiceProvider)MyWebBrowser.Document;
Guid serviceGuid = SID_SWebBrowserApp;
Guid iid =
typeof
(SHDocVw.IWebBrowser2).GUID;
SHDocVw.IWebBrowser2 myWebBrowser2 = (SHDocVw.IWebBrowser2)serviceProvider.QueryService(
ref
serviceGuid,
iid);
SHDocVw.DWebBrowserEvents_Event wbEvents = (SHDocVw.DWebBrowserEvents_Event)myWebBrowser2;
wbEvents.NewWindow +=
SHDocVw.DWebBrowserEvents_NewWindowEventHandler(OnWebBrowserNewWindow);
OnWebBrowserNewWindow(
URL,
int
Flags,
TargetFrameName,
PostData,
Headers,
bool
Processed)
Processed =
MyWebBrowser.Navigate(URL);
[ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid(
"6d5140c1-7436-11ce-8034-00aa006009fa"
)]
internal
interface
IServiceProvider
[
return
: MarshalAs(UnmanagedType.IUnknown)]
QueryService(
Guid guidService,
Guid riid);