예제 #1
0
        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();
        }
예제 #2
0
        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;
        }
예제 #3
0
        void WpfWebBrowserHelper_DownloadBegin( object sender, WpfWebBrowserExtender.DownloadBeginEventArgs e )
        {
            StopButton.Visibility = Visibility.Visible;
            RefreshButton.Visibility = Visibility.Hidden;

            StatusText.Visibility = Visibility.Visible;
        }
예제 #4
0
        void WpfWebBrowserHelper_NewWindow( object sender, WpfWebBrowserExtender.NewWindowEventArgs e )
        {
            var eventArgs = new NewWindowRequestEventArgs();
                eventArgs.Url = e.url;

            NewWindowRequest( this, eventArgs );
        }
예제 #5
0
 void WpfWebBrowserHelper_NavigateComplete( object sender, WpfWebBrowserExtender.NavigateCompleteEventArgs e )
 {
     AddressBox.Text = e.Uri;
 }
예제 #6
0
 void WpfWebBrowserHelper_NavigateError( object sender, WpfWebBrowserExtender.NavigateErrorEventArgs e )
 {
     NavigationHelperOpenBingQuery( e.Uri );
 }
예제 #7
0
        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 );
            }
        }