Releases
v4.2.0
Compare
Sorry, something went wrong.
No results found
ATCBot
released this
16 Oct 22:35
4.2.0 (2026-10-16)
New features
sample: make the readme markdown readable in the dark theme (dce6391 )
Bug fixes
components: correct a hang, a drop index, highlight, trim and dispose defects (670850a )
components: keep the DualListSelector footer counts in sync with the collections (b297e63 )
controls: arrange StaggeredPanel in the measured column count and clamp panel sizes (06c0583 )
controls: attach the NumericBox text handlers only once (3a37123 )
controls: clip AutoGrid spans at the last row and column (3cabedf )
controls: correct ZoomBox content changes, fit animation and MakeVisible (0e81540 )
controls: hide ToggleSwitch header and content presenters for empty strings (f58f15a )
controls: keep a custom BusyOverlay text when the UI culture changes (f5fd40a )
controls: keep ZoomGridOverlay major lines on fixed content positions (d0d7401 )
controls: make GridLines safe for non-positive steps and without a main window (b561c69 )
controls: make the Row panel measure robust (eb1b43b )
controls: realize the contiguous index range in VirtualizingStaggeredPanel (1d7ae86 )
controls: restore only docking dimensions in DockPanelPro.LoadLayout (95df764 )
controls: stop ZoomMiniMap stacking size handlers and throwing on clicks (549ab13 )
core: add a Color overload of HsvColorUtil.ConvertRgbToHsv (87d940c )
core: compose SVG transform lists in SVG order (9e61b4d )
core: deny unsafe drops and reorder observable collections with Move (52486a0 )
core: detect double-clicks per button from ClickCount (7f8bea1 )
core: do not rebuild the previous UI culture from its LCID (8a512e6 )
core: forget the pending drag start when a drag handler cancels (ab3376c )
core: give the last panel child the LastItemMargin instead of the item margin (ebc6351 )
core: hook up TextBoxHelper monitoring when the element is loaded (3fda461 )
core: include the orientation in PanelUvSize equality (bc9f113 )
core: iterate a snapshot of the active markup extensions when updating targets (e2f6067 )
core: keep a pending hotkey chord when a bare modifier key is pressed (fc22f95 )
core: keep async navigation on the calling thread (f602621 )
core: keep the alpha channel when inverting bitmap colors (0b21501 )
core: keep the BoundPassword binding alive and always hook PasswordChanged (fb9f4e7 )
core: let a ResxExtension.Resource handler supply the resource value (7f3954a )
core: make EnumToArrayBindingSource work for nullable enum types (751fcb6 )
core: marshal clipboard calls to the dispatcher and record history once (8a570bb )
core: mirror TextBlockHelper.Inlines changes by index and detach old collections (877dea7 )
core: monitor text changes on TextBox, RichTextBox and ComboBox (6938194 )
core: parse GridEx row and column lengths independent of the culture (91104e4 )
core: parse the BoolToWidth converter parameter independently of the culture (9d1b5d7 )
core: push the default ToColor to the fade shader (355f7a2 )
core: raise one indexed collection notification per change in the observable collections (f5b953e )
core: render JSON nulls, return plain text and freeze the JSON brushes (9b27cb6 )
core: return null from ColorHelper.GetColorFromString for unknown color names (dfab0a6 )
core: return the converted entries for Guid-keyed observable dictionaries (41e1aaf )
core: round instead of truncate when converting HSV to RGB (52498e2 )
core: stop AnimateAttach from leaking elements and stacking handlers (3c26c1b )
core: update markup extension targets on the thread that owns them (43bbedf )
dialogs: own the dialog boxes by the window that opens them (abfe6e2 )
fonticons: accept the converter parameter as a string for brush and em-size (9c4f26d )
forms: accept tcp and udp endpoints and require a mandatory endpoint host (852eac2 )
forms: add IsValid to the date and time pickers (e1e5bcc )
forms: convert decimal control data values instead of unboxing them as int (c247d02 )
forms: do not raise LostFocusValid from the picker IsValid calls (7fa9788 )
forms: format the selected date with the picker culture (bddd476 )
forms: make IsValid on the decimal and currency boxes validate the current value (5115d01 )
forms: raise IsOnChanged with the old and new values in the right order (9e0f885 )
forms: read Range attribute bounds safely and keep the pixel size box limits (b92be6b )
forms: report the edited text in the LabelTextBox lost-focus events (38d52b0 )
forms: skip collections and cap nesting depth in ModelToLabelControlExtractor (be6c432 )
hardware: apply RefreshAsync results on the UI thread (477b7a9 )
hardware: raise DeviceLost and rebind on in-place state changes (b86ff95 )
hardware: report the real Bluetooth connection state (02a5ae7 )
network: keep the scanner and VNC viewer usable after failures (c40330c )
notifications: own and close the desktop toast overlay with the application (4a199a3 )
notifications: register toast areas while loaded and stop sharing one content instance (6b87c0b )
printing: stop swapping the printable area a second time for landscape (978220b )
sample: add a Close button to the borderless NiceWindow sample (d05221a )
sample: judge markdown code-block colours by the editor background (daed088 )
sample: show the readme tab when requested and clear it with the sample (ac14999 )
svg: accept comma and whitespace separated viewBox values (78ec2b5 )
svg: apply clearing OverrideStrokeWidth on SvgImage (94d8981 )
svg: build clip rectangles from x/y and tolerate empty clip paths and poly shapes (ad379f1 )
svg: default a gradient stop without a readable stop-color to black (d987689 )
svg: ignore an unreadable animation duration instead of throwing (a68bec4 )
svg: keep the radial gradient focal point unscaled (81109f6 )
svg: render rgb() and rgba() colours and apply fill-opacity per shape (6c19345 )
svg: stop a use element that points at itself or an ancestor from recursing forever (b3b1a25 )
theming: centre the NiceWindow title between the window commands (8fec072 )
theming: define the resource keys used by the Calendar and DataGrid styles (2ccf234 )
theming: move the saved window rectangle into work-area coordinates (4052fbb )
theming: resolve the parent window of WindowButtonCommands when it is loaded (f4183d1 )
theming: return the documented fallbacks when no theme is detected (e414fb8 )
theming: skip a saved window placement that is off every screen (f4a0971 )
theming: stop NiceWindow from resetting the process culture on render (50b12ff )
theming: upgrade the window placement settings after a version change (1b9b436 )
viewers: keep ANSI escape codes out of TerminalViewer line text (41fb697 )
You can’t perform that action at this time.