| title | NumberBox |
|---|
NumberBox<T> is a single-line numeric editor built on the TextEditorCore infrastructure. It provides caret/selection/clipboard support like TextBox, while keeping a bindable numeric Value.
var age = new State<int>(42);
var ui = new NumberBox<int>()
.Value(age);NumberBox supports undo/redo:
Ctrl+Z: undoCtrl+R: redo
See Undo/Redo.
Validation runs on each text change:
- If the text parses successfully (as
T) andValueValidatorreturnsnull, theValueis updated. - Otherwise
Valueis not updated and a validation message is shown below the editor.
var port = new State<int>(8080);
var ui = new NumberBox<int>
{
ValueValidator = v => v is >= 1 and <= 65535 ? null : "Port must be in [1..65535]",
}.Value(port);You can control parsing via:
ParseStyles(default:NumberStyles.Number)FormatProvider(default:nullmeaning current culture behavior for parsing/formatting)
var ui = new NumberBox<double>()
.ParseStyles(NumberStyles.Float)
.FormatProvider(CultureInfo.InvariantCulture);- Default alignment:
HorizontalAlignment = Align.Start,VerticalAlignment = Align.Start
The validation message is styled via NumberBoxStyle (NumberBoxStyle.Key).
var ui = new NumberBox<int>()
.Style(NumberBoxStyle.Default with
{
ValidationPrefix = "Error: ",
});