Document Redlining and Approval Workflows with TX Text Control Track Changes in .NET C#
This article shows how to implement a document redlining and approval workflow using TX Text Control .NET Server and ASP.NET Core. The document editor can be used to track changes and to accept or reject changes.

Document redlining or known as track changes is a feature of TX Text Control that allows users to see changes made to a document. This feature is commonly used in collaborative editing scenarios where multiple users are working on the same document. The changes are displayed in a different color and can be accepted or rejected by the user.
Specifically used in legal and medical documents, this feature is a must-have for applications that require document collaboration. Contracts, agreements, and other legal documents are often reviewed by multiple parties and the track changes feature helps to visualize and to keep track of changes made to the document.
This article shows how to enable the track changes feature in TX Text Control and how to accept or reject changes programmatically and how to use the visual components of TX Text Control to visualize and manage changes.
MS Word Compatible
TX Text Control allows you to track changes compatible with MS Word and supports this feature in Office Open XML DOCX, DOC, RTF and other supported formats. Changes made to a document in MS Word or Google Docs are visible and accessible in TX Text Control, so it doesn't matter where the document is being edited - you have full control over the changes made.
The following track change functions are available in TX Text Control:
- Keep track of text additions and deletions
- Define current author (user name) for changes
- Display changes in different colors
- Display changes in a separate pane
- Tracking of change, author and time stamp
- Access, accept or reject changes programmatically
- Filter changes
Enable Track Changes
To enable track changes in the visual document editor, the following view code is required to set the current author by setting the username:
@using TXTextControl.Web.MVC
@Html.TXTextControl().TextControl(settings =>
{
settings.UserNames = new string[] { "Tim Typer" };
settings.Dock = TXTextControl.Web.DockStyle.Window;
}).Render()
After setting the current author, the track changes feature can be enabled by toggling the Track Changes toggle button:

Or programmatically by setting the isTrackChangesEnabled property:
TXTextControl.isTrackChangesEnabled = true;
The changes are displayed in a different color and can be accepted or rejected by the user. The sidebar shows the changes and allows the user to navigate through the changes:

Comments can be added to connected tracked changes and can be displayed in the sidebar:

Document Viewer
The Document Viewer can also be used to load a document that contains tracked changes. They will be visualized and a special mode will be active to navigate through the changes to accept or reject them. This is especially helpful in mobile applications where the full-featured editor is not helpful.
The following code shows how to load a document with tracked changes in the Document Viewer:
@using TXTextControl.Web.MVC.DocumentViewer
@Html.TXTextControl().DocumentViewer(settings =>
{
settings.DocumentPath = "Data/nda_styled_tracked.tx";
settings.UserNames = new string[] { "Tim Typer" };
settings.Dock = DocumentViewerSettings.DockStyle.Window;
}).Render()
After loading the document, the changes are displayed in the Document Viewer:

The mobile view of the Document Viewer shows the changes and allows the user to navigate through the changes in a dedicated toolbar:

Access Changes Programmatically
TX Text Control provides a powerful API to access, accept or reject changes programmatically. The following code shows how to loop through all changes and to display the change type, author and time stamp:
using (TXTextControl.ServerTextControl tx = new TXTextControl.ServerTextControl())
{
tx.Create();
tx.Load("Data/nda_styled_tracked.tx", TXTextControl.StreamType.InternalUnicodeFormat);
foreach (TXTextControl.TrackedChange change in tx.TrackedChanges)
{
Debug.WriteLine(change.UserName);
Debug.WriteLine(change.Text);
Debug.WriteLine(change.ChangeKind);
Debug.WriteLine(change.ChangeTime);
}
}
To accept or reject a change, the following code can be used:
using (TXTextControl.ServerTextControl tx = new TXTextControl.ServerTextControl())
{
tx.Create();
tx.Load("Data/nda_styled_tracked.tx", TXTextControl.StreamType.InternalUnicodeFormat);
TXTextControl.TrackedChange trackedChange = tx.TrackedChanges[0];
tx.TrackedChanges.Remove(trackedChange, true);
}
The TrackedChangeCollection provides the Remove method with the accept parameter that defines whether the change should be accepted or rejected.
Conclusion
TX Text Control provides a powerful track changes feature that is compatible with MS Word and other word processing applications. This feature is a must-have for applications that require document collaboration and document redlining. The API provides methods to access, accept or reject changes programmatically.
ASP.NET
Integrate document processing into your applications to create documents such as PDFs and MS Word documents, including client-side document editing, viewing, and electronic signatures.
- Angular
- Blazor
- React
- JavaScript
- ASP.NET MVC, ASP.NET Core, and WebForms
Related Posts
Transforming Legal Review with AI and TX Text Control: A Smarter, Faster…
AI is revolutionizing legal document review by providing faster, more consistent, and cost-effective analysis to help legal professionals identify risks and streamline workflows. TX Text Control…
Why Defining MIME Types for PDF/A Attachments Is Essential
The PDF/A standard was created to ensure the long-term reliable archiving of digital documents. An important aspect of the standard involves properly handling embedded files and attachments within…
We are Returning to CodeMash 2026 as a Sponsor and Exhibitor
We are excited to announce that we will be returning to CodeMash 2026 as a sponsor and exhibitor. Join us to learn about the latest in .NET development and how our products can help you build…
AI-Ready Documents in .NET C#: How Structured Content Unlocks Better…
Most organizations use AI on documents that were never designed for machines. PDFs without tags, inconsistent templates, undescribed images, and disorganized reading orders are still common. This…
ASP.NETASP.NET CoreDocument Automation
Why Document Processing Libraries Require a Document Editor
A document processing library alone cannot guarantee reliable and predictable results. Users need a true WYSIWYG document editor to design and adjust templates to appear exactly as they will after…
