void _browser_StartNewWindow(object sender, BrowserExtendedNavigatingEventArgs e) { // Here we do the pop-up blocker work // Note that in Windows 2000 or lower this event will fire, but the // event arguments will not contain any useful information // for blocking pop-ups. // There are 4 filter levels. // None: Allow all pop-ups // Low: Allow pop-ups from secure sites // Medium: Block most pop-ups // High: Block all pop-ups (Use Ctrl to override) // We need the instance of the main form, because this holds the instance // to the WindowManager. MiniBrowser mf = GetMainFormFromControl(sender as Control); if (mf == null) { return; } // Allow a popup when there is no information available or when the Ctrl key is pressed bool allowPopup = (e.NavigationContext == UrlContext.None) || ((e.NavigationContext & UrlContext.OverrideKey) == UrlContext.OverrideKey); if (!allowPopup) { // Give None, Low & Medium still a chance. switch (SettingsHelper.Current.FilterLevel) { case PopupBlockerFilterLevel.None: allowPopup = true; break; case PopupBlockerFilterLevel.Low: // See if this is a secure site if (this.WebBrowser.EncryptionLevel != WebBrowserEncryptionLevel.Insecure) { allowPopup = true; } else { // Not a secure site, handle this like the medium filter goto case PopupBlockerFilterLevel.Medium; } break; case PopupBlockerFilterLevel.Medium: // This is the most dificult one. // Only when the user first inited and the new window is user inited if ((e.NavigationContext & UrlContext.UserFirstInited) == UrlContext.UserFirstInited && (e.NavigationContext & UrlContext.UserInited) == UrlContext.UserInited) { allowPopup = true; } break; } } if (allowPopup) { // Check wheter it's a HTML dialog box. If so, allow the popup but do not open a new tab if (!((e.NavigationContext & UrlContext.HtmlDialog) == UrlContext.HtmlDialog)) { ExtendedWebBrowser ewb = mf.WindowManager.New(false); // The (in)famous application object e.AutomationObject = ewb.Application; } } else { // Here you could notify the user that the pop-up was blocked e.Cancel = true; } }
private void Los_Click(object sender, RoutedEventArgs e) { string site = URL.Text; MiniBrowser.Navigate(new Uri(site, UriKind.Absolute)); }