protected override bool OnBeforeBrowse(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool userGesture, bool isRedirect) { var args = new OnBeforeBrowseEventArgs(chromiumWebBrowser, browser, frame, request, userGesture, isRedirect); OnBeforeBrowseEvent?.Invoke(this, args); return(args.CancelNavigation); }
private void ReqHandler_OnBeforeBrowseEvent(object sender, OnBeforeBrowseEventArgs e) { if (e.Request.Url.Equals("http://tmp/", StringComparison.OrdinalIgnoreCase)) { return; } else if (e.Request.Url.StartsWith("navigate://", StringComparison.OrdinalIgnoreCase)) { var r = new Regex(@"^navigate://(?<to>.+)$"); var to = r.Match(e.Request.Url)?.Groups["to"].Value; if (!string.IsNullOrWhiteSpace(to)) { switch (to.ToLower()) { case "restore-default-value": PART_PropertyGrid.Dispatcher.Invoke(new Action(() => { var defaultAttr = _summaryBrowserSelectedProp?.PropertyDescriptor.Attributes.OfType <DefaultValueAttribute>().FirstOrDefault(); if (defaultAttr != null) { _summaryBrowserSelectedProp.Value = defaultAttr.Value; } })); break; } } e.CancelNavigation = true; return; } e.CancelNavigation = true; Process.Start(new ProcessStartInfo(e.Request.Url) { UseShellExecute = true, Verb = "open" }); }