wpf-devexpress-dot-xpf-dot-richedit-dot-richeditcontrol-af0cd040.md
Fires when text is typed in the control.
Namespace : DevExpress.Xpf.RichEdit
Assembly : DevExpress.Xpf.RichEdit.v25.2.dll
NuGet Package : DevExpress.Wpf.RichEdit
public event AutoCorrectEventHandler AutoCorrect
Public Event AutoCorrect As AutoCorrectEventHandler
The AutoCorrect event's data class is AutoCorrectEventArgs. The following properties provide information specific to this event:
| Property | Description |
|---|---|
| AutoCorrectInfo | Gets or sets the AutoCorrectInfo object that provides methods to analyze input text and contains a replacement object. |
The event data class exposes the following methods:
| Method | Description |
|---|---|
| CreateAutoCorrectInfo() | Allows you to create a new AutoCorrectInfo instance for use within the event handler. |
Handle the AutoCorrect event to implement complex replacements as you type.
The RichEditControl.AutoCorrect event is handled to replace the typed $ symbol with a picture of a dollar, and substitute the text enclosed in percent symbols with custom content.
To accomplish this task, a document text obtained via the AutoCorrectEventArgs.AutoCorrectInfo property is amended by expanding its left boundary using the AutoCorrectInfo.DecrementStartPosition method, until a special symbol or a word separator symbol is found. If a resulting string meets certain conditions, such as whether it is a dollar sign or a %date% string, a replacement object is passed to the document via the AutoCorrectInfo.ReplaceWith property. A replacement object can be a string or an image.
private void richEditControl1_AutoCorrect(object sender, DevExpress.XtraRichEdit.AutoCorrectEventArgs e)
{
AutoCorrectInfo info = e.AutoCorrectInfo;
e.AutoCorrectInfo = null;
if (info.Text.Length <= 0)
return;
for (; ; ) {
if (!info.DecrementStartPosition())
return;
if (IsSeparator(info.Text[0]))
return;
if (info.Text[0] == '$') {
info.ReplaceWith = CreateImageFromResx("dollar_pic.png");
e.AutoCorrectInfo = info;
return;
}
if (info.Text[0] == '%') {
string replaceString = CalculateFunction(info.Text);
if (!String.IsNullOrEmpty(replaceString)) {
info.ReplaceWith = replaceString;
e.AutoCorrectInfo = info;
}
return;
}
}
}
Private Sub richEditControl1_AutoCorrect(ByVal sender As Object, ByVal e As DevExpress.XtraRichEdit.AutoCorrectEventArgs)
Dim info As AutoCorrectInfo = e.AutoCorrectInfo
e.AutoCorrectInfo = Nothing
If info.Text.Length <= 0 Then
Return
End If
Do
If Not info.DecrementStartPosition() Then
Return
End If
If IsSeparator(info.Text(0)) Then
Return
End If
If info.Text(0) = "$"c Then
info.ReplaceWith = CreateImageFromResx("dollar_pic.png")
e.AutoCorrectInfo = info
Return
End If
If info.Text(0) = "%"c Then
Dim replaceString As String = CalculateFunction(info.Text)
If Not String.IsNullOrEmpty(replaceString) Then
info.ReplaceWith = replaceString
e.AutoCorrectInfo = info
End If
Return
End If
Loop
End Sub
See Also