# What's New in TX Text Control 12.0

> Version 12.0 introduced ServerTextControl, text frames with their own text and events, images anchored to paragraphs and page breaks controlled per table row.

- **Product:** TX Text Control .NET for WPF
- **Section:** Documentation
- **Kind:** Topic
- **Path:** TX Text Control .NET for WPF > What's New > Older Versions > What's New in TX Text Control 12.0
- **3341 words**
- **Web URL:** https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/older-versions/1200/
- **LLMs URL:** https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/older-versions/1200/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/older-versions/1200/llms-full.txt

---

`ServerTextControl` was born in TX Text Control 12.0: the programming interface of the Windows Forms `TextControl` without a user interface, for server applications. The same version introduced text frames and images anchored to a paragraph, and gave table rows control over page breaks.

Version 12.0 was released in August 2005 as TX Text Control .NET for Windows Forms 12.0, as the blog article [TX Text Control 12.0 Released](https://www.textcontrol.com/blog/2005/08/03/tx-text-control-120-released/) announced. The server product, TX Text Control Server for ASP.NET (incl. Windows Forms) 12.0, followed in November 2005, as the press release [Press Release: TX Text Control Server for ASP.NET (incl. Windows Forms) 12.0 is Released](https://www.textcontrol.com/blog/2005/11/21/press-release-tx-text-control-server-for-aspnet-incl-windows-forms-120-is-released/) announced. It ran on Internet Information Server and sent its output to an HTTP stream or a file without showing anything on the server. TX Text Control .NET for WPF didn't exist yet: its first version was [Version 16.0](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/older-versions/1600/llms-full.txt), and the classes below belong to the class library that it shares with the Windows Forms edition. Features of the Windows Forms control, such as the attribute dialog boxes for images and text frames and the mouse interface for moving and sizing them, aren't listed here.

### Version 12.0 at a Glance

| Area | What is new |
|---|---|
| Server programming | The `ServerTextControl` class |
| Text frames | Rectangles of editable text, positioned like images |
| Images | Anchored to a paragraph |
| Tables | Rows that aren't broken across pages, a minimum row height |

### ServerTextControl

[ServerTextControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/llms-full.txt) has the programming interface of the `TextControl` class without its visual interface, for use in ASP.NET server applications. It loads, changes and saves documents with members such as [Create](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/create-method/llms-full.txt), which has to be called before any other member, [Load](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/load-method/llms-full.txt), [Save](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/save-method/llms-full.txt), [Selection](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/selection-property/llms-full.txt), [Tables](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/tables-property/llms-full.txt), [Images](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/images-property/llms-full.txt) and [HeadersAndFooters](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/headersandfooters-property/llms-full.txt). [ServerTextControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/overview/components/servertextcontrol/llms-full.txt) describes the class as it is today.

### Text Frames and Anchored Images

- **Anchored images.** Besides inserting an image as a character or positioning it on a page, an image can be anchored to a paragraph. The text flows around it, its position is relative to the paragraph, and it moves with the text. New overloads of [ImageCollection.Add](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/imagecollection/add-method/llms-full.txt) insert such images, and all properties of [Image](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/image/llms-full.txt) support them.
- **Text frames.** A [TextFrame](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/llms-full.txt) is a rectangle of text that can be edited like the main text and positioned like an image: as a character, anchored to a paragraph or relative to a page. [ServerTextControl.TextFrames](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/textframes-property/llms-full.txt) returns a [TextFrameCollection](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframecollection/llms-full.txt), which works like the collection of images.
- **The text of a frame.** A text frame has its own [Selection](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/selection-property/llms-full.txt), [Lines](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/lines-property/llms-full.txt), [TextChars](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/textchars-property/llms-full.txt), [Tables](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/tables-property/llms-full.txt), [TextFields](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/textfields-property/llms-full.txt) and [Images](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/images-property/llms-full.txt), so that its text is programmed like the main text. [BorderWidth](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/borderwidth-property/llms-full.txt), [InternalMargins](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/internalmargins-property/llms-full.txt) and [BackColor](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/backcolor-property/llms-full.txt) set its border, its margins and its background.
- **Events.** [TextFrameCreated](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/textframecreated-event/llms-full.txt) and [TextFrameDeleted](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/textframedeleted-event/llms-full.txt) pass a [TextFrameEventArgs](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframeeventargs/llms-full.txt) object.

[Text Frames and Shapes](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/document-editor/text-frames-shapes/llms-full.txt) and [Images, Text Frames, and Shapes](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/document-processing/images-shapes/llms-full.txt) show how to work with them today.

### Tables

A forced page break can be placed anywhere in a table, which moves the whole table row to the next page. [TableRow.AllowPageBreak](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/tablerow/allowpagebreak-property/llms-full.txt) set to `false` keeps a row from being broken across pages, and [TableRow.MinimumHeight](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/tablerow/minimumheight-property/llms-full.txt) sets the height a row has at least; it grows when its text needs more room. See [Tables and Calculations](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/document-processing/tables/llms-full.txt).

### Upgrade to Version 12.0

Version 12.0 has no update notes.

### New Classes, Properties, Methods and Events

The classes and members below are the ones that the What's New documentation of version 12.0 lists for TX Text Control .NET for WPF. Names are relative to the `TXTextControl` namespace, each name links to its current reference page, and "(obsolete)" marks a member that is obsolete today. The version's own list also names `TableRow` as a new class, but `TableRow.Select` dates from version 10.1, so it isn't listed under New Classes. It further lists `TextFrames` properties of `MainText`, `FootnoteSection` and `FootnoteText`, classes that the reference dates to versions 16.0 and 32.0, and the method `TextFrameAttributesDialog` of `WPF.TextControl`, a class of version 16.0; they are left out here.

#### New Classes

- [ServerTextControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/llms-full.txt)
- [TextFrame](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/llms-full.txt)
- [TextFrameCollection](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframecollection/llms-full.txt)
- [TextFrameEventArgs](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframeeventargs/llms-full.txt)

#### Members by Class

| Class | Properties | Methods | Events |
|---|---|---|---|
| [HeaderFooter](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/headerfooter/llms-full.txt) | [TextFrames](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/headerfooter/textframes-property/llms-full.txt) |  |  |
| [ServerTextControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/llms-full.txt) | [BackColor](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/backcolor-property/llms-full.txt), [Baseline](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/baseline-property/llms-full.txt), [DocumentLinks](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/documentlinks-property/llms-full.txt), [DocumentTargets](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/documenttargets-property/llms-full.txt), [Font](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/font-property/llms-full.txt), [FontUnderlineStyle](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/fontunderlinestyle-property/llms-full.txt), [ForeColor](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/forecolor-property/llms-full.txt), [HeadersAndFooters](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/headersandfooters-property/llms-full.txt), [HypertextLinks](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/hypertextlinks-property/llms-full.txt), [Images](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/images-property/llms-full.txt), [InlineStyles](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/inlinestyles-property/llms-full.txt), [InputPosition](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/inputposition-property/llms-full.txt), [Lines](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/lines-property/llms-full.txt), [ListFormat](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/listformat-property/llms-full.txt), [PageMargins](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/pagemargins-property/llms-full.txt), [Pages](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/pages-property/llms-full.txt), [PageSize](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/pagesize-property/llms-full.txt), [ParagraphFormat](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/paragraphformat-property/llms-full.txt), [ParagraphStyles](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/paragraphstyles-property/llms-full.txt), [Selection](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/selection-property/llms-full.txt), [Tables](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/tables-property/llms-full.txt), [Text](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/text-property/llms-full.txt), [TextBackColor](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/textbackcolor-property/llms-full.txt), [TextChars](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/textchars-property/llms-full.txt), [TextFields](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/textfields-property/llms-full.txt), [TextFrames](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/textframes-property/llms-full.txt) | [Clear](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/clear-method/llms-full.txt), [Create](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/create-method/llms-full.txt), [Find](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/find-method/llms-full.txt), [GetXmlElements](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/getxmlelements-method/llms-full.txt), [Load](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/load-method/llms-full.txt), [OnImageCreated](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/onimagecreated-method/llms-full.txt), [OnImageDeleted](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/onimagedeleted-method/llms-full.txt), [OnTableCreated](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/ontablecreated-method/llms-full.txt), [OnTableDeleted](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/ontabledeleted-method/llms-full.txt), [OnTextFrameCreated](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/ontextframecreated-method/llms-full.txt), [OnTextFrameDeleted](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/ontextframedeleted-method/llms-full.txt), [OnXmlInvalid](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/onxmlinvalid-method/llms-full.txt), [OnXmlNotWellFormed](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/onxmlnotwellformed-method/llms-full.txt), [Print](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/print-method/llms-full.txt), [ResetBackColor](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/resetbackcolor-method/llms-full.txt), [ResetContents](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/resetcontents-method/llms-full.txt), [ResetFont](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/resetfont-method/llms-full.txt), [ResetForeColor](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/resetforecolor-method/llms-full.txt), [ResetPageMargins](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/resetpagemargins-method/llms-full.txt), [ResetPageSize](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/resetpagesize-method/llms-full.txt), [ResetTextBackColor](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/resettextbackcolor-method/llms-full.txt), [Save](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/save-method/llms-full.txt), [Select](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/select-method/llms-full.txt), [SelectAll](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/selectall-method/llms-full.txt) | [ImageCreated](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/imagecreated-event/llms-full.txt), [ImageDeleted](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/imagedeleted-event/llms-full.txt), [TableCreated](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/tablecreated-event/llms-full.txt), [TableDeleted](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/tabledeleted-event/llms-full.txt), [TextFrameCreated](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/textframecreated-event/llms-full.txt), [TextFrameDeleted](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/textframedeleted-event/llms-full.txt), [XmlInvalid](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/xmlinvalid-event/llms-full.txt), [XmlNotWellFormed](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/xmlnotwellformed-event/llms-full.txt) |
| [TableRow](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/tablerow/llms-full.txt) | [AllowPageBreak](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/tablerow/allowpagebreak-property/llms-full.txt), [CellFormat](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/tablerow/cellformat-property/llms-full.txt), [MinimumHeight](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/tablerow/minimumheight-property/llms-full.txt), [Row](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/tablerow/row-property/llms-full.txt) |  |  |
| [TextFrame](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/llms-full.txt) | [BackColor](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/backcolor-property/llms-full.txt), [BorderWidth](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/borderwidth-property/llms-full.txt), [Images](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/images-property/llms-full.txt), [InsertionMode](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/insertionmode-property/llms-full.txt), [InternalMargins](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/internalmargins-property/llms-full.txt), [Lines](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/lines-property/llms-full.txt), [Selection](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/selection-property/llms-full.txt), [Tables](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/tables-property/llms-full.txt), [TextChars](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/textchars-property/llms-full.txt), [TextFields](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframe/textfields-property/llms-full.txt) |  |  |
| [TextFrameCollection](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframecollection/llms-full.txt) |  | [Add](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframecollection/add-method/llms-full.txt), [CopyTo](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframecollection/copyto-method/llms-full.txt), [Remove](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframecollection/remove-method/llms-full.txt) |  |
| [TextFrameEventArgs](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframeeventargs/llms-full.txt) | [TextFrame](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/textframeeventargs/textframe-property/llms-full.txt) |  |  |

### Next Steps

- [Version 13.0](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/older-versions/1300/llms-full.txt): the features of the next version.
- [Version 11.0](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/older-versions/1100/llms-full.txt): nested tables, table splitting and PDF security.
- [ServerTextControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/overview/components/servertextcontrol/llms-full.txt): the class as it is today.

---

## Nearby

- **Previous:** [What's New in TX Text Control 13.0](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/older-versions/1300/llms-full.txt)
- **Next:** [What's New in TX Text Control 11.0](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/older-versions/1100/llms-full.txt)
