Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン
#4,108 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
15/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
csharp
領域
desktop

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

説明

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!

主要言語
C#
スター
16.3k
フォーク
3.5k
平均マージ
1日 23時間
マージ済み PR(30日)
9

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

MaterialDesignInXAML/MaterialDesignInXamlToolkit のほかの issue

MaterialDesignInXAML/MaterialDesignInXamlToolkit の issue をすべて見る

似ている issue

C# の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。