123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- using System.Reflection;
- namespace System.Windows.Forms
- {
- public class WebBrowser : Control
- {
- private System.Windows.Controls.ContentControl contentControl { get; }
- protected new System.Windows.Controls.WebBrowser control { get; }
- public Uri Url
- {
- get => control.Source;
- set => control.Source = value;
- }
- public string DocumentText
- {
- get
- {
- dynamic doc = control.Document;
- return doc.documentElement.innerHtml.ToString();
- }
- }
- public bool ScriptErrorsSuppressed { get; set; }
- public event WebBrowserNavigatedEventHandler Navigated;
- protected virtual void OnNavigated(WebBrowserNavigatedEventArgs e)
- {
- dynamic activeX = control.GetType().InvokeMember("ActiveXInstance",
- BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.NonPublic,
- null, control, new object[] { });
- activeX.Silent = ScriptErrorsSuppressed;
- Navigated?.Invoke(this, e);
- }
- public void Navigate(string url) => control.Navigate(url);
- public WebBrowser()
- {
- contentControl = new();
- control = new();
- contentControl.Content = control;
- SetControl(contentControl);
- control.Navigated += (sender, e) => OnNavigated(new WebBrowserNavigatedEventArgs(e.Uri));
- }
- }
- }
|