LayoutFarm.HtmlBoxes.HtmlHost.CreateNewSharedHtmlDoc C# (CSharp) Method

CreateNewSharedHtmlDoc() public method

public CreateNewSharedHtmlDoc ( ) : HtmlDocument
return LayoutFarm.Composers.HtmlDocument
        public HtmlDocument CreateNewSharedHtmlDoc()
        {
            //!!! this is my extension *** 
            HtmlDocument sharedDocument = new HtmlSharedDocument(this.commonHtmlDoc);
            sharedDocument.SetDomUpdateHandler(this.commonHtmlDoc.DomUpdateHandler);
            sharedDocument.CssActiveSheet = this.commonHtmlDoc.CssActiveSheet;
            return sharedDocument;
        }
        public LayoutFarm.HtmlBoxes.LayoutVisitor GetSharedHtmlLayoutVisitor(HtmlContainer htmlCont)

Usage Example

Beispiel #1
0
        public static MyHtmlContainer CreateHtmlContainerFromFragmentHtml(
            HtmlHost htmlHost,
            string htmlFragment,
            HtmlRenderBox htmlFrgmentRenderBox)
        {
            var htmldoc           = htmlHost.CreateNewSharedHtmlDoc();
            var myHtmlBodyElement = htmldoc.CreateElement("body");

            htmldoc.RootNode.AddChild(myHtmlBodyElement);

            //data is wraped up within div?
            //TODO: review this, use shadow dom instead
            var newDivHost = htmldoc.CreateElement("div");

            myHtmlBodyElement.AddChild(newDivHost);
            WebDocumentParser.ParseHtmlDom(
                new LayoutFarm.WebDom.Parser.TextSource(htmlFragment.ToCharArray()),
                htmldoc,
                newDivHost);

            //1. builder
            var renderTreeBuilder = htmlHost.GetRenderTreeBuilder();
            //-------------------------------------------------------------------
            //2. generate render tree
            var rootElement = renderTreeBuilder.BuildCssRenderTree(
                htmldoc,
                htmldoc.CssActiveSheet,
                htmlFrgmentRenderBox);

            //3. create small htmlContainer

            var htmlContainer = new MyHtmlContainer(htmlHost);

            htmlContainer.WebDocument = newDivHost.OwnerDocument;
            htmlContainer.RootCssBox  = rootElement;
            htmlContainer.SetMaxSize(htmlFrgmentRenderBox.Width, 0);

            var lay = htmlHost.GetSharedHtmlLayoutVisitor(htmlContainer);

            htmlContainer.PerformLayout(lay);
            htmlHost.ReleaseHtmlLayoutVisitor(lay);


            htmlFrgmentRenderBox.SetHtmlContainer(htmlContainer, rootElement);
            return(htmlContainer);
        }
All Usage Examples Of LayoutFarm.HtmlBoxes.HtmlHost::CreateNewSharedHtmlDoc