Actipro WPF Studio Releases

Learn what's new across releases, with details of features, enhancements, and resolved issues.

Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
Actipro WPF Studio 26.1.0Major versionSep 4, 2026
Features
  • Bars
    • Added the BarSeparator.StandaloneToolBarSeparatorMode property that can be set to Spacer to activate spacing capabilities in a standalone toolbar, including the ability to right-align some items.
    • Added a BarsMenuFactory that can be used to ensure all Actipro product contextual menus are based on Bars controls.
    • Added PopupClosedCommand support to popup-based Bars controls and related MVVM view models, allowing a command to execute after a popup closes.
    • Improved control rendering in high contrast themes.
    • Improved BarContextMenu's handling of VerticalOffset.
    • Improved the add/remove QAT item logic to better handle MVVM scenarios.
  • Charts
    • Improved how charts determine element type from the ItemsSource.
  • Docking
    • Added the virtual protected SwitcherBase.GetOrderedDocuments and GetOrderedToolWindows methods to allow for switcher item sort order customization.
    • Added TabbedMdiContainer.OpenContextMenu method to open the context menu for the selected window.
    • Added TabbedMdiContainer.OpenContextMenuKeyGesture property that can be used to change the default 'Alt+-' gesture for opening the context menu.
    • Added TabbedMdiContainer.OpenTabMenu method to open the tab menu if the menu button is visible.
    • Added TabbedMdiContainer.OpenTabMenuKeyGesture property that can be used to change the default 'Ctrl+Alt+Down' gesture for opening the tab menu if the menu button is visible.
    • Added ToolWindowContainer.CloseButtonKeyGesture property that can be used to change the default 'Shift+Esc' gesture for closing a tool window.
    • Added ToolWindowContainer.OpenOptionsMenuKeyGesture property that can be used to change the default 'Alt+-' gesture for opening the options menu.
    • Improved positioning, sizing, and scaling of non-hosted popups when used within mixed DPI environments.
    • Improved resizing of WindowControl to allow dragging the right, bottom, and left edges outside the bounds of the parent panel.
    • Updated the DockingWindow.StandardMdiBounds property to be set in a way that doesn't cause bindings to be lost.
    • Updated how dock guide and drop target adornments are removed after use.
  • Editors
    • Added RangeSlider control.
    • Added DecimalEditBox and DecimalPicker for working with Decimal value types, including interop support for DataGrid and Grids.
    • Added the IsInputFilteringEnabled property which is supported by most edit boxes and can be used to restrict the text that is allowed as input.
    • Added support for composite string formats (e.g., "{0:G}") on edit boxes that format numbers.
    • Updated SingleEditBox, SinglePicker, and related interop types for DataGrid and Grids to default rounding of 6 decimal places.
    • Updated checkboard patterns used behind transparent colors to use new CheckerboardBackgroundPrimaryBrushKey and CheckerboardBackgroundSecondaryBrushKey resources which include appropriate defaults for dark themes.
    • Updated date-related edit boxes to use genitive month names when a numeric day part is present.
  • Grids
    • Updated PropertyModelBase to implement IPropertyModel interface. Refactored the derived CachedPropertyModelBase class as appropriate and deprecated several declarations on PropertyModelBase that were no longer necessary.
  • Micro Charts
    • Improved how charts determine element type from the ItemsSource.
  • Navigation
    • Updated ZoomContentControl's zoom-to-region drag behavior to use a more visible selection box.
  • Shell
    • Updated ShellListView and ShellTreeListBox to automatically update images when a DPI change is detected. The related NotifyDpiChanged method is no longer necessary and has been deprecated.
  • SyntaxEditor
    • Refactored the design of documents and snapshots to track the actual line terminators used in text instead of internally always normalizing line terminators to LF only.
    • Updated all methods for text retrieval to return document text with the actual line terminators by default, while still allowing normalization to other line terminator kinds.
    • Added properties to ITextSnapshot to return the inferred line terminator for a document snapshot's text and whether all lines uniformly use that same line terminator.
    • Added the ITextDocument.NormalizeLineTerminators method to ensure all line terminators in a document are of the same kind, and new edit actions to invoke its logic.
    • Added shorter-named values to the LineTerminator enumeration.
    • Added the ILineIndicatorTag interface for line-based indicator tags and updated line-based indicator APIs to use that interface.
    • Added SyntaxEditor.LineNumberMarginCurrentLineForeground and LineNumberMarginCurrentLineBackground properties.
    • Refactored the internal document text storage mechanism to improve performance and memory usage.
    • Changed the default value of TextStylePreview.Text from 'AaBbCcXxYyZz' to 'ij = I::oO(0xB81l);'.
    • Renamed several types and members to fix a misspelling of 'mergable' to the proper word 'mergeable'.
    • Updated the Language Designer to generate more modern code.
    • Updated regular expression search patterns to support non-capturing group syntax.
    • Updated the search overlay pane to render the Find textbox with a red border when invalid regular expression syntax is detected.
    • Updated the default editor context menu to show InputGestureText based on SyntaxEditor.InputBindings if the associated RoutedCommand does not have a KeyBinding.
    • Updated the SyntaxLanguage.PlainText property to return a cached instance.
    • Moved all regular expression-related types to the regex engine reimplementation in the Core assembly.
    • Merged the DisplayItemClassificationTypeProvider class into the BuiltInClassificationTypeProvider class.
    • Removed the Text assembly's DisposableObject class in favor of the DisposableObjectBase class in the Core assembly.
    • Refined the implementation of several core structures.
    • .NET Languages Add-on
      • Improved IntelliPrompt capabilities within top-level statements.
  • Shared
    • Added several new extension methods for DependencyObject that can be used to interact with the logical tree.
    • Added several new extension methods for Visual and Visual3D that can be used to interact with the visual tree.
    • Added support for numeric string formats (e.g., "0'*'") for NumericBadge.OverflowStringFormat.
    • Added InfoBar.IsSingleLineAllowed property that can be used to force a wrapped layout.
    • Added Card.IsResponsiveToPointerOver and IsResponsiveToPointerPressed properties that provide more discrete control over making a Card appear actionable.
    • Refactored licensing infrastructure and moved types to a new ActiproSoftware.Licensing namespace.
    • Created a new simpler licensing dialog that displays when necessary, guiding the user through next steps.
    • Moved the ObservableObjectBase class to the Core assembly in the ActiproSoftware namespace and improved APIs, including adding a SetValue method.
    • Moved the DisposableObjectBase class to the Core assembly in the ActiproSoftware namespace and made the Dispose method abstract.
    • Moved a few extension method classes to the Core assembly in the ActiproSoftware.Extensions namespace and improved APIs. The RoundMode, DateTimeFormatPattern, and DayOfWeekFormatPattern enumerations used by the extension methods were moved to the ActiproSoftware namespace.
    • Moved all types in the ActiproSoftware.Products.Logging namespace to the Core assembly in the ActiproSoftware.Logging namespace.
    • Moved the WeakEventListener class to the Core assembly in the ActiproSoftware namespace.
    • Updated DateRange.OverlapsWith logic to be inclusive of the start and end dates.
    • Updated some brush comparison logic.
  • Themes
    • Refactored WindowChrome internals to reduce complexity and utilize native window borders, which also fixes a prior issue of jittery resizing when using the left or top borders.
    • Updated list controls to use a lower contrast background for selected items, allowing for better display of various foreground content.
  • Core
    • Added a new Core assembly that is referenced by all Actipro assemblies and contains various fundamental classes used across the product line.
    • Applications that use Actipro assembly references instead of NuGet packages must now also reference the Core assembly.
  • Legacy
    • Legacy Editors and PropertyGrid assemblies were removed from the installer. These assemblies were included starting in v17.1 for compatibility with older APIs.
    • Details for the removal of these assemblies are in the 'Converting to v26.1' documentation topic.
  • All
    • Added official support for Visual Studio 2026.
    • Added .NET assembly targets for .NET 10 and removed targets for .NET 6.
    • Added nullable reference type (NRT) annotations for all libraries and samples except some legacy/deprecated products.
    • Added MenuFactory that is used by all Actipro products which can be used to customize or replace built-in contextual menus.
    • Moved all assembly image and cursor resources to a root path level in each assembly.
    • Renamed the ActiproSoftware.Products namespace to ActiproSoftware.Properties.
    • Details for any breaking changes are in the 'Converting to v26.1' documentation topic.
    • Removed legacy XAML designer assemblies that are no longer supported by Visual Studio 2022 or higher.
    • To ensure a consistent API, all classes that implement INotifyPropertyChanged that do not derive from ObservableObjectBase have deprecated the NotifyPropertyChanged method in favor of new OnPropertyChanged and SetProperty methods that match ObservableObjectBase.
Fixes
  • Bar Codes
    • Fixed an encoding error in the Codabar symbology with a couple start/stop characters.
  • Bars
    • Fixed an issue where the context menu for recent document items would not open correctly when in an application menu.
    • Fixed an issue in the MVVM Library where the default template for BarCheckboxViewModel didn't bind StaysOpenOnClick to the related BarMenuItem.
    • Fixed an issue where pressing Esc to close a BarComboBox drop-down didn't always function.
    • Fixed an issue where deserializing a vertically oriented toolbar before initial layout could leave items visible that did not support vertical orientation.
    • Fixed an issue where dockable toolbar layout was not properly invalidated in some scenarios when adding or removing items.
    • Fixed an issue where custom controls with BarControlService.IsVerticalLayoutOrientationSupportedProperty set to false would still be displayed.
  • Charts
    • Fixed an issue where bar charts may not render at the correct size in certain scenarios.
  • Docking
    • Fixed an issue where the pressing the Escape key would not cancel a drag operation while using hosted floating windows.
  • Editors
    • Fixed an issue where typing NaN into DoubleEditBox or SingleEditBox while IsNaNAllowed is false would coerce the value to the maximum instead of treating it as invalid input.
    • Fixed an issue with all editors where a change in the IsNullAllowed property value would not force the Value property to be re-coerced.
  • Grids
    • Updated PropertyModelBase to implement IPropertyModel interface. Refactored the derived CachedPropertyModelBase class as appropriate and deprecated several declarations on PropertyModelBase that were no longer necessary.
  • Shell
    • Fixed issues with ShellListView sorting where date/time property values could be ordered incorrectly and equal property values did not use name as an ascending secondary sort.
  • SyntaxEditor
    • Fixed an issue where dragging an unnormalized selection of text could show the incorrect mouse drop cursor.
Actipro WPF Studio 25.1.4Mar 13, 2026
Features
  • Bars
    • Updated BarComboBox to commit the current previewed item on mouse clicks outside of the popup.
    • Updated control templates to better propagate font family and size to ItemsControls with popups.
    • Updated button click handlers to perform InvocationFocusBehavior logic before processing the click.
    • Updated BarPopupButtonBase to work around a possible cached Foreground issue in TextBlocks on the popup that can occur after theme changes.
    • Updated automatic Label property generation on controls to not occur when the Label is an empty string.
  • Charts
    • Improved X/Y charts to support binding to ICollectionView objects as an ItemsSource.
  • Docking
    • Updated the background rendering of tinted tabs in light themes.
  • Micro Charts
    • Improved X/Y charts to support binding to ICollectionView objects as an ItemsSource.
  • SyntaxEditor
    • Python Language Add-on
      • Improved how the Python resolver handles with statements.
      • Improved how the Python module loader processes string literal type annotations.
      • Improved support for Python return type annotations.
  • Themes
    • Improved the appearance of embedded ComboBox controls.
  • Shared
    • Added the TrustedCodeService class that manages dynamic loading of types in a secure-by-default manner. This change may be potentially breaking for certain rarely used features, so it's important to review the related documentation for details.
Fixes
  • Docking
    • Fixed an exception that could be thrown when dragging to float an auto-hidden tool window with a certain configuration.
  • SyntaxEditor
    • Fixed an issue where text containing extreme numbers of diacritics could cause problems with the text layout engine.
    • .NET Languages Add-on
      • Fixed an issue in the C# parser where nesting a record struct caused a parse error.
  • Shared
    • Removed a MaxLines setter in EmbeddedTextBox's default style, as it seemed to cause a minor layout issue in some scenarios.
Actipro WPF Studio 25.1.3Jan 22, 2026
Features

Bars

  • Improved UI Automation for BarComboBox.
  • Updated RibbonViewModel to synchronize the SelectedItem property with the Tabs collection by always selecting the first tab when no selection is currently defined or the previous selection is removed.
  • Updated some bar controls to use a new resource brush for focused borders.

Charts

  • Improved X/Y and pie charts to support binding to DataTable and DataView objects as an ItemsSource.

Editors

  • Added DateTimeEditBox.ParsingStyles property that can be used to influence how strings are parsed as date/time values.
  • Updated CoerceValidValue logic to better handle when nulls are not allowed.

Grids

  • Updated PropertyModelStringFilter logic to only include category models via descendants and only include category editor models on Category match.

Micro Charts

  • Improved X/Y micro charts to support binding to DataTable and DataView objects as an ItemsSource.

SyntaxEditor

  • Python Language Add-on
    • Improved the Python resolver logic for resolving classes.
Fixes

Bars

  • Fixed InvalidOperationException that might be thrown when using a background thread to change properties of the selected item in a BarComboBox.
  • Fixed a rare issue with a Ribbon using simplified layout where some non-Bars controls might not render in the ribbon if the RibbonGroup was collapsing.

SyntaxEditor

  • Fixed an issue recently introduced in the Language Designer where lexical pattern group pattern types could incorrectly change from Regex to Explicit.
  • .NET Languages Add-on
    • Fixed an issue in the C# parser grammar where the 'record' keyword couldn't be used as a variable properly.