# What's New in TX Text Control .NET for WPF 21.0

> TX Text Control .NET for WPF 21.0 (X11): automatic language detection, whole-word search, content control field adapters, table ranges and GetVersionInfo.

- **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 .NET for WPF 21.0
- **2705 words**
- **Web URL:** https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/older-versions/2100/
- **LLMs URL:** https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/older-versions/2100/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/older-versions/2100/llms-full.txt

---

Content controls of MS Word documents became programmable in TX Text Control 21.0 through a set of field adapters. The WPF `TextControl` also learned to detect the language of its text with TX Spell .NET, and its find and replace dialog boxes began to search the whole document.

Version 21.0 was released in September 2014 as TX Text Control X11, together with TX Spell .NET 5.0 and TX Barcode .NET 4.0, as the blog article [TX Text Control X11 Released: Cross-browser Template Editing](https://www.textcontrol.com/blog/2014/09/10/tx-text-control-x11-released-cross-browser-template-editing/) announced. The HTML5 Web Editor and the ServerVisualization namespace that the same version introduced belong to TX Text Control .NET Server and aren't listed here.

### Version 21.0 at a Glance

| Area | What is new |
|---|---|
| Proofing | Automatic language detection with TX Spell .NET 5.0 |
| Find and replace | Searching text frames, headers and footers, whole words only |
| Content controls | Field adapters for the content controls of MS Word |
| Tables | Selecting a table range between two cells |
| Localization | The Find, Replace and Color dialog boxes in the resource kit |
| Version information | `GetVersionInfo` and the `VersionInfo` class |

### Language Detection

With TX Spell .NET 5.0 connected, setting [WPF.TextControl.IsLanguageDetectionEnabled](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/islanguagedetectionenabled-property/llms-full.txt) to `true` detects the language of all text that has the neutral language. [ServerTextControl.IsLanguageDetectionEnabled](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/islanguagedetectionenabled-property/llms-full.txt) does the same without a user interface. See [Spell Checking and Hyphenation](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/document-editor/spell-checking/llms-full.txt).

### Find and Replace

- **The whole document.** The built-in find and replace dialog boxes continue the search in text frames and in headers and footers instead of stopping at the end of the main text.
- **Whole words.** The [FindOptions](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/findoptions/enumeration/llms-full.txt) value `MatchWholeWord` finds only occurrences of the search text that are whole words.
- **Localization.** The Find, Replace and Color dialog boxes are part of the resource kit and can be translated. See [Localization and Resource Kit](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/document-editor/ribbon-ui/localization/llms-full.txt).

### Content Control Adapters

Content controls are the controls that MS Word adds to documents and templates to automate them. The [DocumentServer.Fields](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/llms-full.txt) namespace received an adapter class for each kind, so that you read and change them without editing the parameters of the underlying `ApplicationField`:

- **Text.** [RichTextContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/richtextcontentcontrol/llms-full.txt) and [PlainTextContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/plaintextcontentcontrol/llms-full.txt).
- **Choices.** [CheckBoxContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/checkboxcontentcontrol/llms-full.txt), [ComboBoxContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/comboboxcontentcontrol/llms-full.txt) and [DropDownListContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/dropdownlistcontentcontrol/llms-full.txt). The feature list of the version calls the last one "DropDownContentControl"; the class is named `DropDownListContentControl`.
- **Dates.** [DateContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/datecontentcontrol/llms-full.txt), with the calendar, the date format and the language of the date.
- **Common properties.** The base class [ContentControlFieldAdapter](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/llms-full.txt) provides [Id](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/id-property/llms-full.txt), [Tag](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/tag-property/llms-full.txt), [Title](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/title-property/llms-full.txt), [Placeholder](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/placeholder-property/llms-full.txt), [ContentEditable](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/contenteditable-property/llms-full.txt), [ContentDeletable](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/contentdeletable-property/llms-full.txt) and [Type](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/type-property/llms-full.txt).

[Fields and Subtext Parts](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/document-processing/fields/llms-full.txt) describes the fields of MS Word documents and their adapter classes today.

### Tables and Version Information

- **Table ranges.** A new overload of [Table.Select](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/table/select-method/llms-full.txt) selects the part of a table between two cells. See [Tables and Calculations](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/document-processing/tables/llms-full.txt).
- **Version information.** [WPF.TextControl.GetVersionInfo](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/getversioninfo-method/llms-full.txt) and [ServerTextControl.GetVersionInfo](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/getversioninfo-method/llms-full.txt) return a [VersionInfo](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/versioninfo/llms-full.txt) object with the [Major](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/versioninfo/major-property/llms-full.txt) and [Minor](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/versioninfo/minor-property/llms-full.txt) version, the [ServicePack](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/versioninfo/servicepack-property/llms-full.txt) number (0 for the original release) and the product level. The reference documents the product level as the property [ProductLevel](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/versioninfo/productlevel-property/llms-full.txt), but in the assemblies the property is named `Level`, and `ProductLevel` is the type of its value.

### Upgrade to Version 21.0

Version 21.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 21.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 names the `ListItems` property of `DropDownListContentControl` as a property of `DateContentControl`; it is listed here with the class it belongs to.

#### New Classes

- [DocumentServer.Fields.CheckBoxContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/checkboxcontentcontrol/llms-full.txt)
- [DocumentServer.Fields.ComboBoxContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/comboboxcontentcontrol/llms-full.txt)
- [DocumentServer.Fields.ContentControlFieldAdapter](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/llms-full.txt)
- [DocumentServer.Fields.DateContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/datecontentcontrol/llms-full.txt)
- [DocumentServer.Fields.DropDownListContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/dropdownlistcontentcontrol/llms-full.txt)
- [DocumentServer.Fields.PlainTextContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/plaintextcontentcontrol/llms-full.txt)
- [DocumentServer.Fields.RichTextContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/richtextcontentcontrol/llms-full.txt)
- [VersionInfo](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/versioninfo/llms-full.txt)

#### Members by Class

| Class | Properties | Methods | Events |
|---|---|---|---|
| [DocumentServer.Fields.CheckBoxContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/checkboxcontentcontrol/llms-full.txt) | [Checked](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/checkboxcontentcontrol/checked-property/llms-full.txt) |  |  |
| [DocumentServer.Fields.ComboBoxContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/comboboxcontentcontrol/llms-full.txt) | [ListItems](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/comboboxcontentcontrol/listitems-property/llms-full.txt) |  |  |
| [DocumentServer.Fields.ContentControlFieldAdapter](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/llms-full.txt) | [ContentDeletable](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/contentdeletable-property/llms-full.txt), [ContentEditable](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/contenteditable-property/llms-full.txt), [Id](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/id-property/llms-full.txt), [Placeholder](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/placeholder-property/llms-full.txt), [Tag](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/tag-property/llms-full.txt), [Title](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/title-property/llms-full.txt), [Type](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/contentcontrolfieldadapter/type-property/llms-full.txt) |  |  |
| [DocumentServer.Fields.DateContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/datecontentcontrol/llms-full.txt) | [Calendar](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/datecontentcontrol/calendar-property/llms-full.txt), [Date](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/datecontentcontrol/date-property/llms-full.txt), [DateFormat](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/datecontentcontrol/dateformat-property/llms-full.txt), [LanguageID](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/datecontentcontrol/languageid-property/llms-full.txt), [StoreMappedDataAs](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/datecontentcontrol/storemappeddataas-property/llms-full.txt) |  |  |
| [DocumentServer.Fields.DropDownListContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/dropdownlistcontentcontrol/llms-full.txt) | [ListItems](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/dropdownlistcontentcontrol/listitems-property/llms-full.txt) |  |  |
| [DocumentServer.Fields.PlainTextContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/plaintextcontentcontrol/llms-full.txt) | [Text](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/plaintextcontentcontrol/text-property/llms-full.txt) |  |  |
| [DocumentServer.Fields.RichTextContentControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/richtextcontentcontrol/llms-full.txt) | [Text](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/richtextcontentcontrol/text-property/llms-full.txt) |  |  |
| [ServerTextControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/llms-full.txt) | [IsLanguageDetectionEnabled](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/islanguagedetectionenabled-property/llms-full.txt) | [GetVersionInfo](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/getversioninfo-method/llms-full.txt) |  |
| [VersionInfo](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/versioninfo/llms-full.txt) | [Major](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/versioninfo/major-property/llms-full.txt), [Minor](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/versioninfo/minor-property/llms-full.txt), [ProductLevel](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/versioninfo/productlevel-property/llms-full.txt), [ServicePack](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/versioninfo/servicepack-property/llms-full.txt) |  |  |
| [WPF.TextControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/llms-full.txt) | [IsLanguageDetectionEnabled](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/islanguagedetectionenabled-property/llms-full.txt) | [GetVersionInfo](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/getversioninfo-method/llms-full.txt) |  |

### Next Steps

- [Version 22.0](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/older-versions/2200/llms-full.txt): the features of the next version.
- [Version 20.0](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/older-versions/2000/llms-full.txt): right-to-left text, hyphenation and object merging.
- [Fields and Subtext Parts](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/document-processing/fields/llms-full.txt): fields and their adapter classes in the current version.

---

## Nearby

- **Previous:** [What's New in TX Text Control .NET for WPF 22.0](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/older-versions/2200/llms-full.txt)
- **Next:** [What's New in TX Text Control .NET for WPF 20.0](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/older-versions/2000/llms-full.txt)
