Actipro WPF Studio 22.1.0

Actipro WPF Studio 22.1.0
Adds Microsoft .NET 6 compatibility and improves Charts, DataGrid and SyntaxEditor controls.

News

Feature Release

December 17, 2021 - 15:46
Actipro WPF Studio 22.1.0
Actipro WPF Studio
  • Charts
    • Added new AggregationKind.SignedMaximum and AggregationKind.SignedMinimum which compare against absolute values while retaining the sign of the original value; e.g., -5 is greater than 4.
    • Refactored internal data processing logic to support more data types and throw InvalidOperationException for unsupported types.
  • DataGrid
    • Improved the various predefined columns that integrate Editors controls into DataGrid to pass updated column property values onto the generated Editors controls.
  • Docking
    • Improved how focus is applied to TreeListBox controls when a docking window is activated.
  • Editors
    • Added a PartEditBoxCommitTriggers.LostFocus option so that commit on focus loss is now optional, which is a breaking change since it previously always occurred. The Default and All options have been updated to include LostFocus so they operate like before. If you use any other custom options, you must also now include the LostFocus option to retain the same behavior as before.
    • Renamed the PartEditBoxCommitTriggers.None option to Manual. The previous None option implicitly committed on focus loss. Use the new LostFocus option instead of None to retain the same behavior as before.
    • Updated the numeric edit boxes to support input of Full-width and Arabic-Indic digits.
  • Gauge
    • Renamed 'ToggleSwitch' as 'FlipSwitch' to avoid ambiguity with new 'ToggleSwitch' control.
  • Grids
    • Added the TreeListBox.FilterApplied event that is raised after the current filtering state has been applied to all of the control's items, generally occurring when DataFilter is changed, or filtering is enabled or disabled.
    • Added a TreeListBoxItemAdapter.GetAbsolutePath method that can be implemented to improve performance in large trees when searching for a tree node.
    • Improved TreeListBox item focus tracking in response to selection changes.
    • Improved TreeListBox when filtering with DataFilterResult.IncludedWithDescendants to only ensure items included by the filter are made visible via expansion, instead of all descendants.
    • Improved PropertyGrid to support watching collection properties that use EnableCollectionSynchronization.
  • MicroCharts
    • Added new MicroAggregationKind.SignedMaximum and MicroAggregationKind.SignedMinimum which compare against absolute values while retaining the sign of the original value; e.g., -5 is greater than 4.
    • Refactored internal data processing logic to support more data types and throw InvalidOperationException for unsupported types.
  • Navigation
    • Added the ZoomContentControl.ZoomLevelChanged event.
    • Updated Breadcrumb to stop reopening drop-down menus on button mouse over when a menu is closed via the Esc key.
  • Ribbon
    • Added the Ribbon.IsToggleMinimizationButtonVisible property to determine if the toggle minimizable button is visible when the Ribbon is minimizable.
    • Improved built-in context menu display logic.
  • SyntaxEditor
    • Added a Drag and Drop QuickStart to demonstrate multiple interaction models and features.
    • Added support to customize drag/drop text when dragging within the same editor.
    • Added an Editor Views - Synchronization QuickStart to demonstrate synchronizing the scroller, splitter, and zoom level of one editor instance with another.
    • Added new non-generic interfaces ITaggerBase (implemented by ITagger<T>) and ITagAggregatorBase (implemented by ITagAggregator<T>) for a type-safe way of working with these types when the type of ITag is not relevant.
    • Added ITaggerBase.NotifyTagAggregatorAttached and ITaggerBase.NotifyTagAggregatorDetached which are called when an instance of TagAggregatorBase<T> attaches to or detaches from a tagger.
    • Added CanKeepCaretVisible property to ScrollDownAction and ScrollUpAction to control if the caret should optionally be moved to remain visible after scrolling. Corresponding overloads added to IEditorScrollViewer.ScrollDown and ScrollUp methods.
    • Added various IQuickInfoSession.Placement* properties that return values if the placement-oriented Open method was used to open the session.
    • Updated the IntelliPrompt Quick Info QuickStart to demonstrate repositioning the QuickInfoSession.PlacementRectangle property for these kinds of sessions as the view is scrolled.
    • Improved the vertical scrollbar behavior when dealing with collapsed regions.
    • Improved the positioning logic for IntelliPrompt popups, especially on tablet PCs with right-handedness set.
    • Improved the logic for the EditorSnapshotChangedEventArgs.TypedText property to remove whitespace that might have been added to pad a typed character for proper virtual space positioning.
    • Updated the Language Designer app to support creation of AST node interfaces.
    • Updated drag-and-drop behavior to support customization through DragEventArgs.Effects.
    • Updated drag-and-drop to scroll horizontally when the drop caret is near the edges of the control.
    • Updated drag-and-drop to remove possible unnecessary scrolling following a drop.
    • Updated feedback when dragging to only show the 'Copy' or 'Move' indicator over valid drop locations.
    • Updated Single-Line Mode QuickStart to include a formula example with alternate style for nested parenthesis.
    • Updated IDataStore.GetText method to support String data format if UnicodeText and Text are undefined.
    • Updated IDataStore.SetText method to replace HTML and RTF data formats with new text.
    • Updated TagAggregatorBase<T> so it no longer calls Dispose when detaching from taggers which implement IDisposable. Taggers can use the new ITaggerBase.NotifyTagAggregatorDetached method to determine the most appropriate time to dispose of the tagger.
    • Updated SyntaxEditor.IsDocumentReadOnly to a read-write property and the corresponding dependency property SyntaxEditor.IsDocumentReadOnlyProperty now supports two-way bindings.
    • Updated the SyntaxEditor.SuspendCaretBlinking and ResumeCaretBlinking methods to support caret display when focus is not in the editor.
    • Updated the IntelliPrompt repositioning logic to better handle when a session is closed due to being scrolled out of view.
    • Updated the MoveSelectedLinesDownAction logic to prevent unexpected results when at the document end.
    • Updated outlining logic to ensure that a collapsed outlining node expands if its end is removed and it becomes an open node.
  • .NET Languages Add-on
    • Added a Go To Definition QuickStart to demonstrate using an IResolver to navigate to the source of a reference.
    • Updated the C# parser grammar to support C# 8.0 syntax.
    • Updated the C# outliner to create outlining nodes for code-level constructs such as block statements. This feature can be disabled by setting the CSharpOutliner.CanOutlineCodeLevelConstructs property to false.
    • Updated the SourceFileLocation property to be populated on all ITypeMemberDefinition objects from source, and added it to IParameterDefinition and IVariableDefinition objects loaded from source. This allows for Go To Definition functionality to be implemented for all kinds of resolved objects.
    • Updated the DocumentationProvider.ToString method to return the raw XML documentation comment text.
    • Updated CSharpContextFactory and VBContextFactory to better handle target expression resolution when positioned immediately after a significant token.
  • Web Languages Add-on
    • Updated the JavaScript parser grammar to support ECMAScript 2021 (12th Edition) syntax.
    • Updated JsonSyntaxLanguage with a new constructor overload for whether the lexer supports JavaScript style comments, as in Microsoft's JSONC variant.
    • Updated the XML context factory to return an AST node for the target element, if the AST is in sync with the tokens that generated the target element.
  • Python Language Add-on
    • Updated the parser grammar to support Python v3.9.5 syntax.
    • Updated the resolver to support namespace packages.
    • Removed support for Python v2.x syntax, which is well past end of life.
  • Themes
    • Added WindowChrome support for the snap layout menu when hovering over the maximize button on Microsoft Windows 11 systems.
    • Added the WindowChrome.CornerKind property that allows system-rendered window corners, borders, and drop shadows on Microsoft Windows 11. Rounded borders will now be active by default on Windows 11 systems.
    • Added the ThemeManager.IsThemeSupported method that returns whether a theme name is for a predefined theme or a registered custom theme.
    • Added an overload for ImageProvider.GetImageSource that takes a string-based key to internally resolve the associated ImageSource.
    • Added SharedImageSourceKeys class to define the built-in keys supported by ImageProvider.GetImageSource including four icons consistent with system icons for error, information, question, and warning.
    • Updated the ThemeManager.CurrentTheme property setter to throw an exception if you set a theme name that is not for a predefined theme or a registered custom theme.
    • Updated various TextBox templates to ensure Padding is applied to hint text.
    • Updated WindowChrome overlays to support being made visible prior to the Window.Loaded event being raised.
  • Shared
    • Added the ToggleSwitch control, which is often seen as a replacement for a traditional CheckBox in modern user interfaces.
    • Added the User Prompt controls that can be used to create fully themed MessageBox-style prompts.
    • Added the BorderChildClipConverter, which can be used to ensure that a Border.Child element is properly clipped according to the Border.CornerRadius.
    • Added AnimatedExpanderDecorator.IsAnimationEnabled property for individual animation control that is automatically disabled when not supported by the current environment.
    • Improved how DelegateCommand's ICommand interface implementation handles a null command parameter argument when the generic type argument is non-nullable.
    • Improved the UIColor.Grayscale method logic.
    • Updated AnimatedExpanderDecorator to not measure/arrange its child element when the owner Expander is collapsed.
    • Updated PopupButton to focus the first enabled menu item in its PopupMenu if the menu was opened via the keyboard.
    • Updated PopupButton to focus the button when Esc is pressed to close its PopupMenu.
    • Updated PopupButton to not show its ToolTip if the popup is open.
    • Updated PopupButton's Esc and Alt+Up key handling to only occur if its popup is currently open.
    • Updated PopupButton's popup to close when StaysOpen is false and the end user Alt+Tabs to another window, or focus moves outside of the control.
  • All
    • Validated Microsoft .NET 6 compatibility.
    • Added Microsoft .NET 5 variations of the product assemblies to the NuGet feeds.