Text - supports drawing text of different styles.
Image - draws an image with a known or dynamic size.
Background - applies solid background color beneath its children.
Border - applies solid border around its children.
Line - draws vertical or horizontal line.
Canvas - allows you to extend the standard set of visual elements by giving access to the low-level SkiaSharp API.
Placeholder - draws a simple placeholder image for prototyping purposes.
Width - applies minimum and/or maximum width constraints to its children.
Height - applies minimum and/or maximum height constraints to its children.
Alignment - allows you to specify the exact position of its child, e.g. in the middle, or in the bottom left corner.
Padding - applies empty space around its children.
Aspect Ratio - reserves an area with a specified aspect ratio.
Extend - extends child size to fit the entire content vertically and/or horizontally.
Minimal box - minimizes child size to the smallest possible. Useful when the parent element provides more space than is necessary.
Translate - virtually moves the child horizontally and/or vertically in spaces.
Rotate - rotates its child.
Scale - scales its child to make it bigger or smaller.
Scale to fit - scales its child to fit available space.
Flip - rotates its child in 90 degree increments.
Unconstrained - removes any size constraints, giving its child unlimited space.
Content flow elements
Page break - forces all subsequent content to be moved to the next page.
Show if - conditionally displays its children.
Show once - displays its children only once, on the first page of the occurrence. The element is not visible on subsequent pages.
Skip once - hides its children on the first page of the occurrence. The element is visible on all subsequent pages.
Show entire - makes sure that the element is fully visible on a single page, without page breaking.
Ensure space - a less strict version of the
ShowEntire element. If there is not enough space to display the entire element on a single page, it makes sure that the first page of the occurrence has at least the minimum specified size available. Used to visually optimize the layout.
Stop paging - displays its element on the first page only. If some part of the element does not fit, it is ignored.
Page - allows you to manage page settings, e.g. size, margin, color, watermark, etc.
Table - arranges its children using a table-layout algorithm. Supports row and column spanning.
Column - places its children vertically, one under another.
Row - places its children horizontally, one alongside another.
Grid - arranges its children using grid-layout algorithm. Available space is divided into a set of equally-spaced columns. Its child can occupy any number of columns.
Inlined - draws its elements in a line. Supports various element alignments.
Decoration - places additional content before and/or after its children. The additional content is repeated on all pages.
Layers - places additional content underneath and/or above its children. The additional content is repeated on all pages. Useful when implementing watermarks.
List - draws its children as an ordered or unordered list.
Section - specifies a multi-page area spanning its children. Used to create internal document links and for showing custom page numbers.
Section Link - creates a link to the specified section. Redirects the user to the page containing the section's first occurrence.
Hyperlink - creates a link to an external location, e.g. redirects the user to a webpage.
Element - allows you to break the Fluent API chain and inject dynamic content using a lambda expression.
Default Text Style - applies additional text styling for all text elements inside its hierarchy.
Debug Area - draws a colorful box with a label around its children. Useful for designing purposes.
Debug Pointer - marks its children with a special label. That label is useful to better understand document structure when the library throws layout-related exceptions.