示例#1
0
        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);
        }
示例#2
0
        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"
            });
        }