public static void VisitContent(EContent content) { if (ContentMap.Count == 0) { Init(); } if (content != CurrentCotnent && CurrentCotnent != EContent.NONE) { var currentContent = ContentMap[CurrentCotnent]; currentContent.LatestURL = Browser.Address; } else { if (content == CurrentCotnent) { var currentContent = ContentMap[CurrentCotnent]; if (currentContent.LatestURL == Browser.Address) { currentContent.LatestURL = currentContent.URL; } } } CurrentCotnent = content; MapHandler.HideAndBrowserShow(); //get content data var visitContent = ContentMap[content]; //content init if (visitContent.Init == false) { visitContent.LatestURL = visitContent.URL; visitContent.Init = true; } //white bg execute MainWindow.whiteBackground.Visibility = (visitContent.TransparentBody == true) ? Visibility.Visible : Visibility.Hidden; //get url var url = visitContent.LatestURL; var scroll = visitContent.LatestScrollHeight; Browser.Visibility = Visibility.Visible; Browser.HorizontalAlignment = HorizontalAlignment.Left; Browser.Width = visitContent.Width; Browser.Load(visitContent.LatestURL); }
public HelpUI(Control parent, EContent type, string title, string content, Point?ofs = null, Size?size = null, EPin pin = EPin.TopRight, bool modal = false) : base(parent, pin, ofs ?? Point.Empty, size ?? Size.Empty, modal) { InitializeComponent(); Type = type; Text = title; Content = content; m_btn_back.Enabled = false; m_btn_forward.Enabled = false; SetStatusText(null); switch (Type) { default: throw new Exception("Unknown content type"); case EContent.Text: { var txt = new TextBox { Dock = DockStyle.Fill, BorderStyle = BorderStyle.None, Multiline = true, ScrollBars = ScrollBars.Both, ReadOnly = true, }; txt.Text = Content; TextCtrl = txt; break; } case EContent.Rtf: { var rtb = new RichTextBox { Dock = DockStyle.Fill, BorderStyle = BorderStyle.None, DetectUrls = true, ReadOnly = true, }; rtb.Rtf = Content; rtb.LinkClicked += OnLinkClicked; TextCtrl = rtb; break; } case EContent.Html: { var web = new BrowserCtrl { Dock = DockStyle.Fill, AllowNavigation = true }; web.CanGoForwardChanged += (s, a) => m_btn_forward.Enabled = web.CanGoForward; web.CanGoBackChanged += (s, a) => m_btn_back.Enabled = web.CanGoBack; web.ResolveContent += (s, a) => ResolveContent(a); web.StatusTextChanged += (s, a) => SetStatusText(web.StatusText != "Done" ? web.StatusText : string.Empty); web.UrlHistory.Add(new BrowserCtrl.Visit(HelpUrl)); TextCtrl = web; ShowNavigationButtons = true; break; } } TextCtrl.BackColor = SystemColors.Window; m_panel.Controls.Add(TextCtrl); m_btn_ok.Click += Close; m_btn_forward.Click += OnForward; m_btn_back.Click += OnBack; }
/// <summary>Show a modal help dialog from plain text, RTF, or html</summary> public static DialogResult ShowDialog(Control parent, EContent type, string title, string content, Point?ofs = null, Size?size = null, EPin pin = EPin.TopRight) { using (var ui = new HelpUI(parent, type, title, content, ofs, size, pin, true)) return(ui.ShowDialog(parent)); }