{"id":15011649,"url":"https://github.com/dirkster99/numericupdownlib","last_synced_at":"2025-04-12T03:30:57.421Z","repository":{"id":41463435,"uuid":"99130916","full_name":"Dirkster99/NumericUpDownLib","owner":"Dirkster99","description":" Implements numeric up down WPF controls to edit/display values (byte, integer, short, ushort etc.) with a textbox and optional up/down arrow (repeat) buttons. Value editing is possible by dragging the mouse vertically/horizontally, clicking up/down buttons, using up/down or left right cursor keys,  spinning mousewheel on mouseover, or editing the textbox.","archived":false,"fork":false,"pushed_at":"2023-07-09T04:36:05.000Z","size":438,"stargazers_count":83,"open_issues_count":9,"forks_count":15,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-25T23:24:31.041Z","etag":null,"topics":["control","css","dark-theme","dotnet","library","light","light-theme","mouse-drag-mode","nuget-package","numeric","numericupdown","repeat","theme","themes","theming","ui","ui-components","updown","wpf-controls"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dirkster99.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"License.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-02T15:12:45.000Z","updated_at":"2025-03-09T02:47:57.000Z","dependencies_parsed_at":"2024-09-20T06:02:33.322Z","dependency_job_id":null,"html_url":"https://github.com/Dirkster99/NumericUpDownLib","commit_stats":{"total_commits":137,"total_committers":6,"mean_commits":"22.833333333333332","dds":"0.36496350364963503","last_synced_commit":"0dd9bd8e569736f0192107cfaadd340a7e0aa90e"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dirkster99%2FNumericUpDownLib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dirkster99%2FNumericUpDownLib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dirkster99%2FNumericUpDownLib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dirkster99%2FNumericUpDownLib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dirkster99","download_url":"https://codeload.github.com/Dirkster99/NumericUpDownLib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248512497,"owners_count":21116613,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["control","css","dark-theme","dotnet","library","light","light-theme","mouse-drag-mode","nuget-package","numeric","numericupdown","repeat","theme","themes","theming","ui","ui-components","updown","wpf-controls"],"created_at":"2024-09-24T19:41:23.459Z","updated_at":"2025-04-12T03:30:56.805Z","avatar_url":"https://github.com/Dirkster99.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--- [![Build status](https://img.shields.io/appveyor/ci/Dirkster99/NumericUpDownLib.svg)](https://ci.appveyor.com/project/Dirkster99/NumericUpDownLib) --\u003e\n[![Build status](https://ci.appveyor.com/api/projects/status/35rwxjk9700x4ovb?svg=true)](https://ci.appveyor.com/project/Dirkster99/numericupdownlib)\n[![Release](https://img.shields.io/github/release/Dirkster99/NumericUpDownLib.svg)](https://github.com/Dirkster99/NumericUpDownLib/releases/latest)\n[![NuGet](https://img.shields.io/nuget/dt/Dirkster.NumericUpDownLib.svg)](http://nuget.org/packages/Dirkster.NumericUpDownLib)\n\n![Net4](https://badgen.net/badge/Framework/.Net\u0026nbsp;4/blue) ![NetCore3](https://badgen.net/badge/Framework/NetCore\u0026nbsp;3/blue)\n\n# Overview\n\n## Fixes and Features Added in Version 3.4\n\n- [#55 Bugfix: Format-Text must return parsed value, else value in textbox will be overwritten with \"LastEditingNumericValue\" if \"IsUpdateValueWhenLostFocus\" is enabled on lost focus](https://github.com/Dirkster99/NumericUpDownLib/pull/55)\n\n- [#56 Feature optionally disable mouse wheel](https://github.com/Dirkster99/NumericUpDownLib/pull/56)\n\nThis release has been authored by [Jürgen Holzer](https://github.com/jholzer) :pray:\n\n## Fixes and Features Added in Version 3.3.1\n\n- [#54 LastEditingNumericValue should be as same as Value when ValueChanged](https://github.com/Dirkster99/NumericUpDownLib/pull/54)\n\nThis release has been authored by [heartacker](https://github.com/heartacker) :pray:\n\n## Fixes and Features Added in Version 3.3\n\n### Bug Fixes\n\n- [#53 Fixes \"FormatString not working with custom texts\", \"Control not scaling correctly with HorizontalAlignment set to 'Stretch'\"](https://github.com/Dirkster99/NumericUpDownLib/pull/53)\n\nThis release has been authored by [Jürgen Holzer](https://github.com/jholzer) :pray:\n\n## Fixes and Features Added in Version 3.3\n\n### Bug Fixes\n\n- [Add AbstractBaseUpDown MinWidth virtual property](https://github.com/Dirkster99/NumericUpDownLib/pull/49)\n- [do not adjust the control panel length when use mouse to drap the control of displayLength](https://github.com/Dirkster99/NumericUpDownLib/pull/48)\n\n## Fixes and Features Added in Version 3.2\n\n### Bug Fixes\n\n- [Add AbstractBaseUpDown MinWidth virtual property](https://github.com/Dirkster99/NumericUpDownLib/pull/49)\n- [do not adjust the control panel length when use mouse to drap the control of displayLength](https://github.com/Dirkster99/NumericUpDownLib/pull/48)\n\n### Features Added\n\n- [WaterMark support](https://github.com/Dirkster99/NumericUpDownLib/pull/47)\n  Use the Watermark binding to display a default string (when the user deletes all characters in the textbox portion) to hint at the expected input format.\n\n- [add support command binding](https://github.com/Dirkster99/NumericUpDownLib/pull/46)\n  Use the new **Command** binding to process the event when the user clicks on the Up/Dowm button of the UpDown Control.\n\nThis release has been authored by [heartacker](https://github.com/heartacker) and [Ryan Weldin](https://github.com/rweldin) :pray:\n\n## Features Added in Version 3.1\n\n- [addr support update value when lostfocus,Fixes #36 #38](https://github.com/Dirkster99/NumericUpDownLib/pull/38)\n  Please use the `IsUpdateValueWhenLostFocus` property.\n\n- [support align the value to left/center/right #41](https://github.com/Dirkster99/NumericUpDownLib/pull/41)\n  Please use the `HorizontalContentAlignment` property.\n\n- [add support to force trigger the ValueChanged event with ctrl+enter #39](https://github.com/Dirkster99/NumericUpDownLib/pull/39)\n  Please use \u003ckbd\u003eControl+Enter\u003c/kbd\u003e to trigger a value changed event without having to actually change a value.\n  This shortcut cannot be configured out.\n\n- [support disable editingTip Fixes #37 #43](https://github.com/Dirkster99/NumericUpDownLib/pull/43)\n  Please use the `EnableValidatingIndicator` property.\n\n- [fix: the cursor will focus to the PART_Measuring_Element by mistake #44](https://github.com/Dirkster99/NumericUpDownLib/pull/44)\n\nThis release has been authored by [heartacker](https://github.com/heartacker) :pray:\n\n## Features Added in Version 3.0\n\n- Display and Edit of Hex values\n- Text portion editing can be: \n  - Cancelled with Escape key or can be  \n  - Okay'ed with Enter Key\n\n- The Edit TextBox displays during editing a Red or Green indicator (in upper left corner) depending on whether current text is: \n  - a valid number (GREEN) or  \n  - not valid number (RED)\n\n- Dependency Features Added:  \n  - IsLargeStepEnabled\n  - FormatString\n  - NumberStyle\n\n- Improved Style/Template\n\nThanx for contributing go to [heartacker](https://github.com/heartacker) :pray:\n\n## More Features\n\nThis library implements numeric up down WPF controls to edit a value:\n- by dragging the mouse vertically/horizontally (see recording below) or\n- by clicking up/down arrow (repeat) buttons or\n- up/down or left right cursor keys or\n- spinning mousewheel up down on mouseover or\n- editing a textbox\n\nEach control implementation is specific for a certain .Net data type:\n\n| Data Type | Control              |\n| :---      | :---                 |\n| byte      | ByteUpDown    control|\n| decimal   | DecimalUpDown control|\n| double    | DoubleUpDown  control|\n| float     | FloatUpDown   control|\n| integer   | IntegerUpDown control|\n| long      | LongUpDown    control|\n| sbyte     | SbyteUpDown   control|\n| short     | ShortUpDown   control|\n| ushort    | UshortUpDown  control|\n| uint      | UintUpDown    control|\n| ulong     | UlongUpDown   control|\n\nPercentages can be edit at [0-100] while backend viewmodels handles [0-1] values,\nsee FactorToDoubleConverter and PercentageUpDownDemo in demo clients at project site.\n\nControls are fully themeable. Project site contains demos for:\n- Dark/Light theme and\n- Generics theme\ntest clients.\n\nMore Features:\n- Small Increments and Decrements can be configured to be 1 or any greater value than 1.\n- Large Small Increments and Decrements can be configured to be 10 or any other value greater 1.\n- The width of the control can be configured to be fixed (textbox will scroll inside when text is too large)\n- Up/Down button is disabled when min or max limit is already reached\n- Up/Down button can be configured to be invisible\n- Mouse drag mode for editing value can be enabled/disabled\n- SelectAll on GotFocus of TextBox\n- IsReadOnly property disables the textbox portion but leaves all other funtions for Increment/Decrement available\n\n# LargeStepSize and StepSize\nThere are mouse and keyboard input methods that support 2 different configurable increment/decrement values.\n\n## Mouse Drag Mode\n\nThe user can hover the mouse over the textbox portion of the control and:\n- left click/drag vertically or\n- left click/drag horizontally\n\nto change the current value with the size configured in *StepSize* or *LargeStepSize* dependency property.\n\n## Mouse Wheel\n\nThe user can hover the mouse over the textbox portion and spin the mouse wheel with:\n- no modifier key pressed or\n- a modifier key pressed\n\nto change the current value with the size configured in *StepSize* or *LargeStepSize* dependency property.\n\nThe modifier key for changing the value with *LargeStepSize* can be configured in the\n*MouseWheelAccelaratorKey* dependency property.\n\n## Cursor Keys\n\nThe user can click into the textbox portion of the control and:\n- press cursor left or right or\n- press cursor up and down\n\nto change the current value with the size configured in *StepSize* or *LargeStepSize* dependency property.\n\n# Demo Applications\n\nThere is a demo application that shows the usage of the control (Light/Black themes enabled) and documents the features,\nsuch as, the ability to configure a minimum and maximum value that can be used to keep the resulting\nvalue within a given bound.\n\n![screenshot](https://raw.githubusercontent.com/Dirkster99/Docu/master/numericupdown/V2_2/MouseDrag.gif)\n![screenshot](https://raw.githubusercontent.com/Dirkster99/Docu/master/numericupdown/02_00/DarkByteDemo.png)\n![screenshot](https://raw.githubusercontent.com/Dirkster99/Docu/master/numericupdown/02_00/LightIntegerDemo.png)\n![screenshot](https://raw.githubusercontent.com/Dirkster99/Docu/master/numericupdown/02_00/PercentageDemo.png)\n\n## Theming\n\nLoad *Light* or *Dark* brush resources in you resource dictionary to take advantage of existing definitions.\n\n```XAML\n    \u003cResourceDictionary.MergedDictionaries\u003e\n        \u003cResourceDictionary Source=\"/NumericUpDownLib;component/Themes/DarkBrushs.xaml\" /\u003e\n    \u003c/ResourceDictionary.MergedDictionaries\u003e\n```\n\n```XAML\n    \u003cResourceDictionary.MergedDictionaries\u003e\n        \u003cResourceDictionary Source=\"/NumericUpDownLib;component/Themes/LightBrushs.xaml\" /\u003e\n    \u003c/ResourceDictionary.MergedDictionaries\u003e\n```\n\nThese definitions do not theme all controls used within this library. You should use a standard theming library, such as:\n- [MahApps.Metro](https://github.com/MahApps/MahApps.Metro),\n- [MLib](https://github.com/Dirkster99/MLib), or\n- [MUI](https://github.com/firstfloorsoftware/mui)\n\nto also theme standard elements, such as, button and textblock etc.\n\nVisit the project's [Wiki](https://github.com/Dirkster99/NumericUpDownLib/wiki) for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdirkster99%2Fnumericupdownlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdirkster99%2Fnumericupdownlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdirkster99%2Fnumericupdownlib/lists"}