public BrowserControl() : base() { InitializeComponent(); BackButton.IsEnabled = IE.CanGoBack; ForwardButton.IsEnabled = IE.CanGoForward; _wpfWebBrowserHelper = new WpfWebBrowserExtender( IE ); _wpfWebBrowserHelper.HookForEvents ( new WpfWebBrowserExtender.HookEventType[] { WpfWebBrowserExtender.HookEventType.DownloadBegin, WpfWebBrowserExtender.HookEventType.ProgressChange, WpfWebBrowserExtender.HookEventType.DownloadComplete, WpfWebBrowserExtender.HookEventType.NavigateError, WpfWebBrowserExtender.HookEventType.NavigateComplete, WpfWebBrowserExtender.HookEventType.NewWindow } ); _wpfWebBrowserHelper.DownloadBegin += WpfWebBrowserHelper_DownloadBegin; _wpfWebBrowserHelper.ProgressChange += WpfWebBrowserHelper_ProgressChange; _wpfWebBrowserHelper.DownloadComplete += WpfWebBrowserHelper_DownloadComplete; _wpfWebBrowserHelper.NavigateError += WpfWebBrowserHelper_NavigateError; _wpfWebBrowserHelper.NavigateComplete += WpfWebBrowserHelper_NavigateComplete; _wpfWebBrowserHelper.NewWindow += WpfWebBrowserHelper_NewWindow; AddressBox.Focus(); AddressBox.SelectAll(); }
void WpfWebBrowserHelper_ProgressChange( object sender, WpfWebBrowserExtender.ProgressChangeEventArgs e ) { double percentDownloaded = e.ProgressMax != 0 ? e.Progress * 100 / e.ProgressMax : 100; StatusText.Width = AddressBox.ActualWidth * percentDownloaded / 100; }
void WpfWebBrowserHelper_DownloadBegin( object sender, WpfWebBrowserExtender.DownloadBeginEventArgs e ) { StopButton.Visibility = Visibility.Visible; RefreshButton.Visibility = Visibility.Hidden; StatusText.Visibility = Visibility.Visible; }
void WpfWebBrowserHelper_NewWindow( object sender, WpfWebBrowserExtender.NewWindowEventArgs e ) { var eventArgs = new NewWindowRequestEventArgs(); eventArgs.Url = e.url; NewWindowRequest( this, eventArgs ); }
void WpfWebBrowserHelper_NavigateComplete( object sender, WpfWebBrowserExtender.NavigateCompleteEventArgs e ) { AddressBox.Text = e.Uri; }
void WpfWebBrowserHelper_NavigateError( object sender, WpfWebBrowserExtender.NavigateErrorEventArgs e ) { NavigationHelperOpenBingQuery( e.Uri ); }
void WpfWebBrowserHelper_DownloadComplete( object sender, WpfWebBrowserExtender.DownloadCompleteEventArgs e ) { StopButton.Visibility = Visibility.Hidden; RefreshButton.Visibility = Visibility.Visible; BackButton.IsEnabled = IE.CanGoBack; ForwardButton.IsEnabled = IE.CanGoForward; StatusText.Visibility = Visibility.Hidden; if( !String.IsNullOrEmpty( e.PageTitle ) ) { const int maxTitleLength = 20; String pageTitle = e.PageTitle; if( pageTitle.Length > maxTitleLength ) { pageTitle = pageTitle.Substring( 0, maxTitleLength - 3 ) + "..."; } var evetArgs = new TitleChangeEventArgs(); evetArgs.Title = pageTitle; TitleChange( this, evetArgs ); } }