The NRichTextLabel component may be configured by providing setting the Document property directly. You may apply styles in much the same manner as in HTML and CSS. Styles are composable and inheritable per any dom element. You may take full advantage of the Nevron core graphics device and rendering capabilities like shadows, fill styles, stroke styles, image filters like in Photoshop, etc.
The following code demonstrates how to create a four-paragraph bulleted list, each paragraph containing 4 formatted string fragments formatted using different styles:
[C#]
NTextDocument document = new NTextDocument();
NStyle style;
// create a bullet list style with upper roman bullets
NListStyleElement listStyleElement = new NListStyleElement();
//create four paragraphs with different alignments
NParagraphElement paragraph;
NStringFragment stringFragment;
NImageFilter imgFilter;
NImageFiltersStyle filters;
foreach(ParagraphAlignment pAlign in Enum.GetValues(typeof(ParagraphAlignment)))
{
paragraph = new NParagraphElement();
style = new NStyle();
style.ParagraphAlignment = pAlign;
paragraph.Style = style;
style = new NStyle();
style.FontName = "Trebuchet MS";
style.FontStyleEx = FontStyleEx.Bold;
style.FontSize = new NLength(12);
style.ShadowStyle = new NShadowStyle(ShadowType.LinearBlur, Color.Gray, new NPointL(2, 2));
stringFragment = new NStringFragment("This is \"" + pAlign.ToString() + "\" aligned paragraph.");
stringFragment.Style = style;
paragraph.AddChild(stringFragment);
paragraph.AddChild(new NNewLineFragment());
style = new NStyle();
style.FontName = "Tahoma";
style.FontSize = new NLength(9);
style.FontStyleEx = FontStyleEx.Italic | FontStyleEx.Underline;
style.FillStyle = new NGradientFillStyle(Nevron.GraphicsCore.GradientStyle.Horizontal, GradientVariant.Variant1, Color.Orange, Color.Black);
stringFragment = new NStringFragment("Check out the full control over appearance.");
stringFragment.Style = style;
paragraph.AddChild(stringFragment);
paragraph.AddChild(new NNewLineFragment());
style = new NStyle();
style.FontName = "Verdana";
style.FontSize = new NLength(10);
style.FontStyleEx = FontStyleEx.Italic | FontStyleEx.Bold;
style.FillStyle = new NAdvancedGradientFillStyle(AdvancedGradientScheme.CalmWater1, 1);
stringFragment = new NStringFragment("You may apply styles per any basis!");
stringFragment.Style = style;
paragraph.AddChild(stringFragment);
paragraph.AddChild(new NNewLineFragment());
style = new NStyle();
style.FontName = "Arial";
style.FontSize = new NLength(20);
style.FontStyleEx = FontStyleEx.Bold;
style.FillStyle = new NAdvancedGradientFillStyle(AdvancedGradientScheme.Fog1, 0);
//create some image filters
filters = new NImageFiltersStyle();
imgFilter = new NBevelAndEmbossImageFilter();
filters.Filters.Add(imgFilter);
imgFilter = new NLightingImageFilter();
filters.Filters.Add(imgFilter);
style.FillStyle.ImageFiltersStyle = filters;
stringFragment = new NStringFragment("And even image filters!");
stringFragment.Style = style;
paragraph.AddChild(stringFragment);
listStyleElement.AddChild(paragraph);
}
style = new NStyle();
NTextListStyle textListStyle = new NTextListStyle(TextListStyleType.UpperRoman);
textListStyle.FillStyle = new NColorFillStyle(Color.Red);
style.ListStyle = textListStyle;
style.TopSpacing = new NLength(0);
listStyleElement.Style = style;
document.AddChild(listStyleElement);
//assign the newly created document to an existing NRichTextLabel instance
nRichTextLabel1.Document = document;