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

> TX Text Control .NET for WPF 31.0: signature fields with SignerData, Save As and form field dialogs, mail merge cultures and licensing for .NET 5 to .NET 7.

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

---

Signature fields, which mark where a document is signed, arrived in TX Text Control .NET for WPF with version 31.0. So did NuGet packages and licensing for .NET 5, .NET 6 and .NET 7, which made the version the first to support modern .NET the way the .NET Framework had been. Developers who maintain an application on 31.0, or who plan a step up from it, get its additions over version 30.0 in full, down to the events a handler can react to.

Version 31.0 was released on September 7, 2022, together with TX Text Control .NET Server, TX Text Control .NET for Windows Forms, TX Text Control ActiveX and TX Spell .NET 10.0. The current version is [Version 34.0](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/3400/llms-full.txt). The service packs of 31.0 are listed on [Service Packs](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/service-packs/#version-31-0).

### Version 31.0 at a Glance

| Area | What is new |
|---|---|
| Signatures | Signature fields that hold a signature image and can be signed with a certificate in PDF documents |
| Dialog boxes | A Save As dialog box with options, a form field dialog box and a signature field layout dialog box |
| Mail merge | Cultures for parsing the data and formatting the result, merge settings for `DataSourceManager` |
| .NET | .NET 5, .NET 6 and .NET 7, NuGet packages, licensing for .NET |
| Samples | TX Words split into individual samples, each explained in a sidebar |

### Signature Fields

A signature field is a frame in the document that holds the image of a signature. You add the image when you design the document or later, when the document is signed. In a PDF document, a named signature field can also be associated with a digital certificate.

- **Position.** Like an image or a text frame, a signature field is positioned as a single character in the text or at a geometric position. A geometric position is relative to the paragraph the field is anchored to, to a page or to the whole document. One overload of [SignatureFieldCollection.Add](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signaturefieldcollection/add-method/llms-full.txt) lets the user draw the field with the mouse.
- **Signer data.** [SignatureField.SignerData](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signaturefield/signerdata-property/llms-full.txt) stores data about the person who is expected to sign: name, title, address, contact information and the reason for signing.
- **Certificates.** When you save a PDF or PDF/A document, [SaveSettings.SignatureFields](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/savesettings/signaturefields-property/llms-full.txt) takes an array of [DigitalSignature](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/digitalsignature/llms-full.txt) objects. Each one associates an X.509 certificate with the signature field of the same name. A PDF document with unsigned signature fields can be signed in Acrobat Reader later.
- **File formats.** Signature fields are saved in the TX Text Control format, PDF, DOCX and RTF. All other formats save only the signature image.

#### The API and the User Interface

- **Classes.** [SignatureField](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signaturefield/llms-full.txt) derives from `FrameBase`, like images and text frames. [TextControl.SignatureFields](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/signaturefields-property/llms-full.txt) and [ServerTextControl.SignatureFields](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/signaturefields-property/llms-full.txt) hold the fields of a document, [SignerData](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signerdata/llms-full.txt) the expected signer and [SignatureImage](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signatureimage/llms-full.txt) the image with its save options.
- **Events.** `TextControl` raises five events when a signature field is created, deleted, clicked, selected or deselected. `ServerTextControl` raises the first two.
- **Dialog box.** [TextControl.SignatureFieldLayoutDialog](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/signaturefieldlayoutdialog-method/llms-full.txt) opens a built-in dialog box for the position, size and image saving options of the selected field.
- **Ribbon.** The **Insert** tab, [RibbonInsertTab](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/ribboninserttab/llms-full.txt), has a button that inserts a signature field, `TXITEM_InsertSignature`, and the **Frame Formatting** tab, [RibbonFrameLayoutTab](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/ribbonframelayouttab/llms-full.txt), a group in which users enter the signer data, with items such as `TXITEM_SignerName`.

[Signature Fields](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/document-editor/signature-fields/llms-full.txt) shows how to insert signature fields in the ribbon and in code and how to handle their events, [Signature Fields and Signature Appearance](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/digital-signatures/signature-fields/llms-full.txt) how to sign them and [Digitally Sign a PDF](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/getting-started/pdf/sign/llms-full.txt) takes you through a first signature. The blog article [Sneak Peek 31.0: Signature Fields](https://www.textcontrol.com/blog/2022/05/27/sneak-peek-310-signature-fields/) shows the fields in the user interface.

### Built-In Dialog Boxes and Form Fields

- **Save As options.** A new overload of [TextControl.Save](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/save-method/llms-full.txt) opens the built-in Save As dialog box with additional options. Its last parameter takes one or more values of [SaveSettings.DialogSettings](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/savesettings/dialogsettings-enumeration/llms-full.txt): `EnterPassword` adds a button to set a password for a PDF document, `StylesheetOptions` lets the user save the CSS of an HTML document inline or in a separate file, and `SaveSelection` adds a check box to save only the selected text.
- **Preselected format.** [LoadSaveSettingsBase.DefaultStreamType](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/loadsavesettingsbase/defaultstreamtype-property/llms-full.txt) sets the format that the open and Save As dialog boxes preselect.
- **Form field dialog box.** [FormField.FormFieldDialog](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/formfield/formfielddialog-method/llms-full.txt) opens a built-in dialog box for the attributes of a form field, such as its name, its ID and the items of a drop-down field.
- **Form field changes.** [TextControl.FormFieldSettingsChanged](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/formfieldsettingschanged-event/llms-full.txt) occurs when the name, the ID or the formatting of a form field has changed. It passes a [FormFieldEventArgs](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/formfieldeventargs/llms-full.txt) object with the form field.

[Built-in Dialog Boxes](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/document-editor/ribbon-ui/dialog-boxes/llms-full.txt) lists the dialog boxes, and [Form Fields and Conditional Instructions](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/document-editor/form-fields/llms-full.txt) covers form fields.

### Mail Merge Cultures

The number and date formats of the data can differ from the formats the merged document should show. Version 31.0 lets you set a culture for each side.

- **Two cultures.** [MailMerge.DataSourceCulture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver/mailmerge/datasourceculture-property/llms-full.txt) is used to parse number and date values from the data source, and [MailMerge.MergeCulture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver/mailmerge/mergeculture-property/llms-full.txt) to format them in the result. Both default to the culture of the current thread.
- **Cultures per field.** [MergeField](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/mergefield/datasourceculture-property/llms-full.txt), [IfField](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/iffield/datasourceculture-property/llms-full.txt) and [NextIfField](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/nextiffield/datasourceculture-property/llms-full.txt) have their own `DataSourceCulture` and `MergeCulture` properties. [DateField.Culture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/datefield/culture-property/llms-full.txt) is used to apply the format string of a date field.
- **Sorting and filtering.** [FilterInstruction.Culture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datashaping/filterinstruction/culture-property/llms-full.txt) and [SortingInstruction.Culture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datashaping/sortinginstruction/culture-property/llms-full.txt) are used to compare numbers when the rows of a merge block are filtered and sorted. They default to the invariant culture.
- **UTC offset of date fields.** [MailMerge.DateFieldUtcOffset](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver/mailmerge/datefieldutcoffset-property/llms-full.txt) sets an offset from UTC in minutes for date fields.

[Merge Fields](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/getting-started/mail-merge/fields/llms-full.txt) in Getting Started merges data into a template.

#### DataSourceManager

[DataSourceManager](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/datasourcemanager/llms-full.txt) handles the data sources of a mail merge. In version 31.0, it received:

- the properties [DataSourceCulture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/datasourcemanager/datasourceculture-property/llms-full.txt) and [MergeCulture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/datasourcemanager/mergeculture-property/llms-full.txt)
- [MaxMergeResults](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/datasourcemanager/maxmergeresults-property/llms-full.txt), the maximum number of merge results
- the events [DataRowMerged](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/datasourcemanager/datarowmerged-event/llms-full.txt) and [FieldMerged](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/datasourcemanager/fieldmerged-event/llms-full.txt)
- the class [MergeSettings](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/mergesettings/llms-full.txt), which passes additional settings to [DataSourceManager.Merge](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/datasourcemanager/merge-method/llms-full.txt): whether the results are merged into a single document, and whether empty blocks, fields, images and lines and trailing whitespace are removed

### Samples

Version 31.0 revised the TX Words sample and split it into individual samples, which are easier to follow one at a time. Each sample shows a [Sidebar](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/sidebar/llms-full.txt) at run time that explains the project. Its [ContentLayout](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/sidebar/contentlayout-property/llms-full.txt) is `About`, a panel with a `TextControl` for the explanation, which `TXITEM_AboutViewer` of [Sidebar.AboutItem](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/sidebar/aboutitem-enumeration/llms-full.txt) identifies. [TX Words](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/examples/tx-words/llms-full.txt) describes the samples, and [Sidebar](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/overview/components/sidebar/llms-full.txt) the panels of the sidebar.

### .NET and Packages

- **.NET versions.** Version 31.0 supports .NET 5, .NET 6 and .NET 7, which was a preview at the time of the release, besides the .NET Framework. Text Control announced support for the final release of .NET 7 in November 2022; see the blog article [.NET 7 Day 0 Support for all .NET Products of Text Control](https://www.textcontrol.com/blog/2022/11/14/net-7-day-0-support-for-all-net-products-of-text-control/).
- **Licensing for .NET.** The licensing of version 31.0 is compatible with .NET 5, .NET 6 and .NET 7, and the NuGet packages add the license to a project.
- **Text Control Offline Packages.** The setup adds a NuGet package source named **Text Control Offline Packages** that contains the NuGet packages of the Text Control components. The packages configure the references and the license automatically, add their controls to the toolbox and support the **Publish** command of Visual Studio. See [Configuring Package Sources](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/nuget/sources/llms-full.txt).
- **Licensing without BinaryFormatter.** In version 30.0, compiling the license into a .NET assembly required the obsolete .NET `BinaryFormatter` to be enabled. Version 31.0 no longer requires it.

The blog article [Visual Studio 2022 and .NET 5, 6 and 7 (Preview) Support and Strategy](https://www.textcontrol.com/blog/2022/08/11/visual-studio-2022-net-5-6-7-support-and-strategy/) explains the changes.

### New Classes and Members

The What's New documentation of version 31.0 lists these classes, properties, methods and events as new in TX Text Control .NET for WPF, grouped by class. Each name leads to its reference page. The `On` methods, such as `OnSignatureFieldCreated`, are protected methods that raise the event of the same name.

- [DocumentServer.DataShaping.FilterInstruction](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datashaping/filterinstruction/llms-full.txt): [Culture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datashaping/filterinstruction/culture-property/llms-full.txt)
- [DocumentServer.DataShaping.SortingInstruction](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datashaping/sortinginstruction/llms-full.txt): [Culture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datashaping/sortinginstruction/culture-property/llms-full.txt)
- [DocumentServer.DataSources.DataSourceManager](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/datasourcemanager/llms-full.txt): [DataRowMerged](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/datasourcemanager/datarowmerged-event/llms-full.txt), [DataSourceCulture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/datasourcemanager/datasourceculture-property/llms-full.txt), [FieldMerged](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/datasourcemanager/fieldmerged-event/llms-full.txt), [MaxMergeResults](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/datasourcemanager/maxmergeresults-property/llms-full.txt), [MergeCulture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/datasourcemanager/mergeculture-property/llms-full.txt)
- [DocumentServer.DataSources.MergeSettings](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/mergesettings/llms-full.txt) (new class): [AsSingleDocument](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/mergesettings/assingledocument-property/llms-full.txt), [RemoveEmptyBlocks](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/mergesettings/removeemptyblocks-property/llms-full.txt), [RemoveEmptyFields](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/mergesettings/removeemptyfields-property/llms-full.txt), [RemoveEmptyImages](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/mergesettings/removeemptyimages-property/llms-full.txt), [RemoveEmptyLines](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/mergesettings/removeemptylines-property/llms-full.txt), [RemoveTrailingWhitespace](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-datasources/mergesettings/removetrailingwhitespace-property/llms-full.txt)
- [DocumentServer.Fields.DateField](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/datefield/llms-full.txt): [Culture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/datefield/culture-property/llms-full.txt)
- [DocumentServer.Fields.IfField](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/iffield/llms-full.txt): [DataSourceCulture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/iffield/datasourceculture-property/llms-full.txt), [MergeCulture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/iffield/mergeculture-property/llms-full.txt)
- [DocumentServer.Fields.MergeField](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/mergefield/llms-full.txt): [DataSourceCulture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/mergefield/datasourceculture-property/llms-full.txt), [MergeCulture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/mergefield/mergeculture-property/llms-full.txt)
- [DocumentServer.Fields.NextIfField](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/nextiffield/llms-full.txt): [DataSourceCulture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/nextiffield/datasourceculture-property/llms-full.txt), [MergeCulture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver-fields/nextiffield/mergeculture-property/llms-full.txt)
- [DocumentServer.MailMerge](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver/mailmerge/llms-full.txt): [DataSourceCulture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver/mailmerge/datasourceculture-property/llms-full.txt), [DateFieldUtcOffset](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver/mailmerge/datefieldutcoffset-property/llms-full.txt), [MergeCulture](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-documentserver/mailmerge/mergeculture-property/llms-full.txt)
- [FormField](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/formfield/llms-full.txt): [FormFieldDialog](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/formfield/formfielddialog-method/llms-full.txt)
- [FormFieldEventArgs](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/formfieldeventargs/llms-full.txt) (new class): [FormField](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/formfieldeventargs/formfield-property/llms-full.txt)
- [LoadSaveSettingsBase](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/loadsavesettingsbase/llms-full.txt) (new class): [DefaultStreamType](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/loadsavesettingsbase/defaultstreamtype-property/llms-full.txt), [DocumentBasePath](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/loadsavesettingsbase/documentbasepath-property/llms-full.txt)
- [SaveSettings](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/savesettings/llms-full.txt): [SignatureFields](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/savesettings/signaturefields-property/llms-full.txt)
- [ServerTextControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/llms-full.txt): [OnSignatureFieldCreated](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/onsignaturefieldcreated-method/llms-full.txt), [OnSignatureFieldDeleted](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/onsignaturefielddeleted-method/llms-full.txt), [SignatureFieldCreated](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/signaturefieldcreated-event/llms-full.txt), [SignatureFieldDeleted](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/signaturefielddeleted-event/llms-full.txt), [SignatureFields](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/servertextcontrol/signaturefields-property/llms-full.txt)
- [SignatureField](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signaturefield/llms-full.txt) (new class): [Image](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signaturefield/image-property/llms-full.txt), [SignerData](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signaturefield/signerdata-property/llms-full.txt)
- [SignatureFieldCollection](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signaturefieldcollection/llms-full.txt) (new class): [Add](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signaturefieldcollection/add-method/llms-full.txt), [CopyTo](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signaturefieldcollection/copyto-method/llms-full.txt), [GetItem](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signaturefieldcollection/getitem-method/llms-full.txt), [Remove](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signaturefieldcollection/remove-method/llms-full.txt)
- [SignatureFieldEventArgs](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signaturefieldeventargs/llms-full.txt) (new class): [SignatureField](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signaturefieldeventargs/signaturefield-property/llms-full.txt)
- [SignatureImage](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signatureimage/llms-full.txt) (new class): [ExportCompressionQuality](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signatureimage/exportcompressionquality-property/llms-full.txt), [ExportFileName](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signatureimage/exportfilename-property/llms-full.txt), [ExportFilterIndex](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signatureimage/exportfilterindex-property/llms-full.txt), [ExportMaxResolution](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signatureimage/exportmaxresolution-property/llms-full.txt), [FileName](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signatureimage/filename-property/llms-full.txt), [FilterIndex](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signatureimage/filterindex-property/llms-full.txt), [SaveMode](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signatureimage/savemode-property/llms-full.txt)
- [SignerData](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signerdata/llms-full.txt) (new class): [Address](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signerdata/address-property/llms-full.txt), [ContactInfo](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signerdata/contactinfo-property/llms-full.txt), [Name](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signerdata/name-property/llms-full.txt), [Reason](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signerdata/reason-property/llms-full.txt), [Title](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol/signerdata/title-property/llms-full.txt)
- [WPF.TextControl](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/llms-full.txt): [FormFieldSettingsChanged](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/formfieldsettingschanged-event/llms-full.txt), [OnFormFieldSettingsChanged](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/onformfieldsettingschanged-method/llms-full.txt), [OnSignatureFieldClicked](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/onsignaturefieldclicked-method/llms-full.txt), [OnSignatureFieldCreated](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/onsignaturefieldcreated-method/llms-full.txt), [OnSignatureFieldDeleted](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/onsignaturefielddeleted-method/llms-full.txt), [OnSignatureFieldDeselected](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/onsignaturefielddeselected-method/llms-full.txt), [OnSignatureFieldSelected](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/onsignaturefieldselected-method/llms-full.txt), [SignatureFieldClicked](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/signaturefieldclicked-event/llms-full.txt), [SignatureFieldCreated](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/signaturefieldcreated-event/llms-full.txt), [SignatureFieldDeleted](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/signaturefielddeleted-event/llms-full.txt), [SignatureFieldDeselected](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/signaturefielddeselected-event/llms-full.txt), [SignatureFieldLayoutDialog](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/signaturefieldlayoutdialog-method/llms-full.txt), [SignatureFields](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/signaturefields-property/llms-full.txt), [SignatureFieldSelected](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/reference/txtextcontrol-wpf/textcontrol/signaturefieldselected-event/llms-full.txt)

### Upgrade to Version 31.0

The What's New documentation of version 31.0 lists no changes to existing classes, properties, methods or events, and the version has no change that requires work; projects that reference the assemblies directly can move to the NuGet packages. [Breaking Changes](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/breaking-changes/llms-full.txt) names the versions that have changes, and [Upgrading from Previous Versions](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/upgrading/previous-versions/llms-full.txt) and [Migrating from .NET Framework to .NET](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/upgrading/from-dotnet-framework/llms-full.txt) cover the move of a project.

### Next Steps

- [Version 32.0](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/3200/llms-full.txt): the features of the next version.
- [Version 30.0](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/3000/llms-full.txt): the features of the previous version.
- [Digitally Sign a PDF](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/getting-started/pdf/sign/llms-full.txt): sign signature fields with a certificate.
- [TX Text Control 31.0 and TX Spell .NET 10.0 Have Been Released](https://www.textcontrol.com/blog/2022/09/07/tx-text-control-31-released/): the release announcement on the Text Control Blog.

---

## Nearby

- **Previous:** [What's New in TX Text Control .NET for WPF 32.0](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/3200/llms-full.txt)
- **Next:** [What's New in TX Text Control .NET for WPF 30.0](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/whats-new/3000/llms-full.txt)
