Beispiel #1
0
    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);
    }
Beispiel #2
0
        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;
        }
Beispiel #3
0
 /// <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));
 }