public static string CreateStyleFromSelection(this TXTextControl.TextControl textControl)
        {
            // get current input position
            var iParStart = textControl.Paragraphs.GetItem(
                textControl.InputPosition.TextPosition).Start;

            textControl.Select(iParStart, 0);

            // create a new paragraph style based on current formatting
            TXTextControl.ParagraphStyle parStyle =
                new TXTextControl.ParagraphStyle("custom_" + Guid.NewGuid().ToString());

            // set style
            parStyle.Baseline      = textControl.Selection.Baseline;
            parStyle.Bold          = textControl.Selection.Bold;
            parStyle.FontName      = textControl.Selection.FontName;
            parStyle.FontSize      = textControl.Selection.FontSize;
            parStyle.ForeColor     = textControl.Selection.ForeColor;
            parStyle.Italic        = textControl.Selection.Italic;
            parStyle.Strikeout     = textControl.Selection.Strikeout;
            parStyle.TextBackColor = textControl.Selection.TextBackColor;
            parStyle.Underline     = textControl.Selection.Underline;

            // add style to TextControl
            textControl.ParagraphStyles.Add(parStyle);

            // return the style name
            return(parStyle.Name);
        }
        public static void CompareAndApplyStyle(this TXTextControl.TextControl textControl, string paragraphStyleName)
        {
            // store input position
            var iStartPos = textControl.Selection.Start;

            // retrieve the style based on a name
            TXTextControl.ParagraphStyle style = textControl.ParagraphStyles.GetItem(paragraphStyleName);

            // loop through all paragraphs to check whether the style
            // matches the paragraph style
            foreach (TXTextControl.Paragraph par in textControl.Paragraphs)
            {
                textControl.Select(par.Start, 0);
                var selection = textControl.Selection;

                if (selection.Baseline == style.Baseline &&
                    selection.Bold == style.Bold &&
                    selection.FontName == style.FontName &&
                    selection.FontSize == style.FontSize &&
                    selection.ForeColor == style.ForeColor &&
                    selection.Italic == style.Italic &&
                    selection.Strikeout == style.Strikeout &&
                    selection.Underline == style.Underline)
                {
                    // style matches - apply style
                    par.FormattingStyle = paragraphStyleName;
                }
            }

            // reset input position
            textControl.Selection.Start = iStartPos;
        }
            public ArrayList GetParagraphs()
            {
                int startPos = 0;
                int newPos   = 0;

                do
                {
                    newPos = TX.Find("\n", startPos, TXTextControl.FindOptions.NoMessageBox);

                    if (newPos == -1)
                    {
                        break;
                    }


                    Paragraph newPar = new Paragraph();

                    newPar.Start  = startPos;
                    newPar.Length = newPos - startPos;

                    TX.Select(startPos, newPos - startPos);

                    if (newPos != startPos)
                    {
                        newPar.Text = TX.Selection.Text;
                    }
                    else
                    {
                        newPar.Text = "";
                    }

                    newPar.Style = TX.Selection.FormattingStyle;
                    newPar.Page  = TX.InputPosition.Page;

                    m_par.Add(newPar);
                    startPos = newPos + 1;
                }while (true);

                return(m_par);
            }