wpf-devexpress-dot-xpf-dot-editors-dot-textedit-ca867caa.md
Occurs after the editor is initialized, got the focus, or the editor’s value is changed.
Namespace : DevExpress.Xpf.Editors
Assembly : DevExpress.Xpf.Core.v25.2.dll
NuGet Package : DevExpress.Wpf.Core
public event EventHandler<CustomMaskEventArgs> CustomMask
Public Event CustomMask As EventHandler(Of CustomMaskEventArgs)
The CustomMask event's data class is CustomMaskEventArgs. The following properties provide information specific to this event:
| Property | Description |
|---|---|
| ActionType | Gets the user action. |
| CurrentCursorPosition | Gets the cursor (caret) position before a user performs an action. |
| CurrentEditText | Gets text displayed in the editor before a user performs an action. |
| CurrentHead | Gets the editor’s text that precedes the cursor (caret) position or selected text. |
| CurrentSelectedText | Gets the editor’s selected text. |
| CurrentSelectionAnchor | Gets the selection start point before a user performs an action. |
| CurrentSelectionEnd | Gets the position of the right-most selected character. |
| CurrentSelectionStart | Gets the position of the left-most selected character. |
| CurrentTail | Gets the editor’s text that follows the cursor (caret) position or selected text. |
| Handled | Gets or sets a value that indicates the present state of the event handling for a routed event as it travels the route. Inherited from RoutedEventArgs. |
| InsertedText | Gets text a user attempts to add to the editor. |
| IsCanceled | Gets whether the user action does not lead to the editor value change. |
| IsSelection | Gets whether the editor contains selected text. |
| OriginalSource | Gets the original reporting source as determined by pure hit testing, before any possible Source adjustment by a parent class. Inherited from RoutedEventArgs. |
| ResultCursorPosition | Gets the cursor (caret) position after a user performs an action. |
| ResultEditText | Gets text displayed in the editor after a user performs an action. |
| ResultSelectionAnchor | Gets the selection start point after a user performs an action. |
| RoutedEvent | Gets or sets the RoutedEvent associated with this RoutedEventArgs instance. Inherited from RoutedEventArgs. |
| Source | Gets or sets a reference to the object that raised the event. Inherited from RoutedEventArgs. |
| Tag | Gets the editor’s Tag property value. |
The event data class exposes the following methods:
| Method | Description |
|---|---|
| Cancel() | Cancels the user action. |
| InvokeEventHandler(Delegate, Object) | When overridden in a derived class, provides a way to invoke event handlers in a type-specific way, which can increase efficiency over the base implementation. Inherited from RoutedEventArgs. |
| OnSetSource(Object) | When overridden in a derived class, provides a notification callback entry point whenever the value of the Source property of an instance changes. Inherited from RoutedEventArgs. |
| SetResult(String, Int32, Nullable<Int32>) | Sets the editor text, cursor position, and selection anchor. |
| SetResult(String, String) | Sets the editor text and cursor position. |
| ToString() | Gets the transcript of the user’s action in the following format: (InitialState)->UserAction->(FinalState). |
You can use custom masks to process user input and specify complex custom conditions. Do the following to specify a custom mask:
Custom.CustomMask event.The following code sample allows users to enter only valid image file names:
<dxe:TextEdit MaskType="Custom" CustomMask="OnCustomMask"/>
void OnCustomMask(object sender, DevExpress.Xpf.Editors.CustomMaskEventArgs e) {
var imageExtensions = new string[] {".jpeg", ".jpg", ".png", ".gif", ".tiff", ".tif", ".bmp", ".svg", ".esp"};
var enteredExtension = Path.GetExtension(e.ResultEditText);
if (e.ResultEditText.Any(x => Path.GetInvalidFileNameChars().Contains(x)))
e.Cancel();
if (!imageExtensions.Any(x => x.StartsWith(enteredExtension, System.StringComparison.OrdinalIgnoreCase)))
e.Cancel();
}
Private Sub OnCustomMask(ByVal sender As Object, ByVal e As DevExpress.Xpf.Editors.CustomMaskEventArgs)
Dim imageExtensions = New String() {".jpeg", ".jpg", ".png", ".gif", ".tiff", ".tif", ".bmp", ".svg", ".esp"}
Dim enteredExtension = Path.GetExtension(e.ResultEditText)
If e.ResultEditText.Any(Function(x) Path.GetInvalidFileNameChars().Contains(x)) Then e.Cancel()
If Not imageExtensions.Any(Function(x) x.StartsWith(enteredExtension, System.StringComparison.OrdinalIgnoreCase)) Then e.Cancel()
End Sub
Refer to the following help topic for more information: Mask Type: Custom.
See Also