Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Feature Request] Proposals for input/display improvements and hexadecimal support in NumericUpDown

Abierto
#4,108 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
15/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
csharp
Área
desktop

Línea de trabajo

Start from the UpDownBase.cs base class that the proposed properties (SelectAllOnFocus, DecimalPlaces, Hexadecimal, IsEditable) would extend, and from the Enter-key handling in OnPreviewKeyDown. The hex controls (HexByte through HexUlong) would need new types and default styles. The text-foreground idea touches TextFieldAssist.TextBoxViewForeground. Done would mean maintainers agree which proposals to accept, since the issue is a bundle of design decisions, not one change.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement evaluation required
Description

I often build custom NumericUpDown controls to fit my needs. I have extracted some key features and implemented them for verification. While some parts of my implementation might still be unrefined, I would be grateful if you could check the concepts and consider incorporating these ideas into the library.

1. Extension / Refactoring Ideas for UpDownBase.cs
  • SelectAllOnFocus (bool): Automatically selects all text when the text area gains focus.
  • DecimalPlaces (int): Handles rounding and formats the display to a fixed number of decimal places (e.g., keeping trailing zeros), similar to standard WinForms/WPF numeric controls.
  • Hexadecimal (bool, protected): Enables hex mode and relies on DecimalPlaces to define the display digit length (accessible only via inheritance).
  • IsEditable (bool): Toggles the underlying TextBox.IsReadOnly property to make the text area read-only, allowing value changes only through Up/Down button interactions.
  • Enter Key Behavior: Updates the numeric value and automatically re-selects all text upon pressing the Enter key.
2. Addition of Hexadecimal (Hex) Support Controls
  • Introduce dedicated hex controls: HexByte, HexShort, HexInt, HexLong, HexUshort, HexUint, and HexUlong. Each control would set its own DefaultStyleKey and override Hexadecimal to true.

Background & Detailed Use Cases
① Improving Keyboard/Manual Input Workflow

This is intended for scenarios where users need to repeatedly and quickly modify configuration values using only the keyboard, without relying on mouse interactions:

  1. Control gains focus -> the entire text is selected (SelectAllOnFocus).
  2. User types the new number.
  3. User presses the Enter key to confirm the value (handled via OnPreviewKeyDown).
  4. Upon confirmation, the text automatically returns to a fully selected state.
  5. This loop allows for seamless, rapid manual data entry.
  • Related Features: SelectAllOnFocus, Enter key confirmation, and restricting input to numeric keys only.
② Enhancing Numerical Visibility & Reducing Human Error
  • Consistent Digit Alignment via DecimalPlaces:
    When entering values like 1.23, 12.3, or 123, a lack of aligned decimal places can easily lead to visual misinterpretation. Formatting them as 1.230, 12.300, and 123.000 dramatically reduces caret-skipping and reading mistakes while making significant digits obvious. It also stabilizes the control's layout width during Up/Down stepping.
  • Targeted Foreground Color for the Numeric Part Only:
    Sometimes it is useful to turn negative values red or change colors based on thresholds. Currently, setting Foreground="Red" turns everything red, including PrefixText and SuffixText.
    It would be highly beneficial to have a property like materialDesign:TextFieldAssist.TextBoxViewForeground to selectively color just the inner text/value field. (Note: I attempted to implement this locally but couldn't get it working perfectly.)
  • Restricting Direct Typing via IsEditable:
    Useful when you want to prevent arbitrary user typing and restrict changes solely to the Up/Down buttons for data safety.

Thank you for your time and for maintaining this wonderful library. I hope these ideas can be helpful for future updates!

Lenguaje dominante
C#
Estrellas
16.3k
Forks
3.5k
Merge medio
1 d 23 h
PR fusionados (30 d)
9

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de MaterialDesignInXAML/MaterialDesignInXamlToolkit

Todos los issues de MaterialDesignInXAML/MaterialDesignInXamlToolkit

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.