WPF Controls v21.1.1 Maintenance Release

by Avatar Bill Henning (Actipro) - 1 comment
Monday, March 8, 2021 at 7:02pm

Our v21.1 WPF controls have been updated with a new maintenance release that is now ready for download.  This version has a fun new SyntaxEditor feature, and fixes a problem in the previous release's nuget.org packages that was triggering design-time assemblies to get referenced when using packages.config files.

See this announcement post for the detailed list of enhancements and updates.

Download Buy Now

SyntaxEditor

Unused Regions

A new unused region tag is available that allows you to mark regions of code that are "unused".  This is commonly seen in the Visual Studio code editor when no types from an imported namespace are used, or a variable is declared but never used.

A new sample demonstrating unused regions

The result of tagging text ranges as unused regions is that they will render with partial transparency.  This helps visually separate unused code from other code, while still maintaining the syntax highlighting.

UWP Controls v2020.1 Build 353 Maintenance Release

by Avatar Bill Henning (Actipro) - 1 comment
Monday, February 15, 2021 at 8:35pm

Our v2020.1 UWP controls have been updated with a new maintenance release that is now ready for download. 

See this announcement post for the detailed list of enhancements and updates.

Download Buy Now

UWP Controls 2020.1 Released

by Avatar Bill Henning (Actipro)
Tuesday, March 31, 2020 at 3:40pm

We are pleased to announce the release of the 2020.1 version of our UWP Controls.  

This announcement post contains the detailed list of updates in the 2020.1 version.  Please be aware that Windows 10 Fall Creators Update (version 1709) or later and usage of the Microsoft's free 'Win2D.uwp' NuGet package are required.

Download Buy Now

While the version includes a wide number of small updates and bug fixes, let’s take a look at a handful of the larger updates.  

Editors

AutoCompleteBox 

AutoCompleteBox now has a SelectedItemChanged event and an InputMode property, that alters input behavior.  Search mode is the default and is intended for usage when the control is providing search-like functionality, commonly seen in application title bars.  ComboBox mode is an alternate mode intended for use when the control should be used in more traditional ComboBox-like scenarios.  When in ComboBox mode, the popup list filter turns off when not typing in the control, allowing the entire list to be browsed when interacting with the control purely via the popup.

Swatch-Only Display

BrushEditBox and ColorEditBox now have a HasText property that allows you to hide the text portion of the edit box for a swatch-only display.

Dates and Times

DateEditBox and TimeEditBox now accept delimiter-less input for several additional custom formats.

Large Incremental Changes

Numeric edit boxes now support large incremental changes when holding Shift while pressing Up/Down or rotating the mouse wheel.

Custom Format Strings

Several numeric edit boxes now support custom format strings with semi-colon conditional format specifiers.

Grids

We've added a PropertyGrid.RequestRefresh method that can be called to tell the PropertyGrid to refresh its contents.

SyntaxEditor

Search Overlay Pane

A new background renders the search range when the search overlay pane is in Selection scope mode.

A new property allows you to disable key bindings that would activate the search overlay pane, which is useful if you have an external search UI.

Logic related the selection scope searching has been improved.

Ctrl+Enter can be pressed to execute a Find All search operation when the Find textbox has focus and the find all button is visible.

IntelliPrompt

New methods allow completion list items to be added much faster, dramatically improving performance.

WinForms Controls 2020.1 Released

by Avatar Bill Henning (Actipro) - 1 comment
Friday, November 15, 2019 at 9:59pm

We are pleased to announce the release of the 2020.1 version of our WinForms Controls.  This version includes the massive SyntaxEditor enhancements and updates we’ve been working on that have previously been described as “SyntaxEditor vNext” in the blog, and moves the older WinForms SyntaxEditor API to the same codebase already used by the WPF and UWP SyntaxEditor versions.  This change brings a number of new features to the WinForms SyntaxEditor (including some huge premium add-on language updates) and will allow us to keep all three SyntaxEditor platform implementations in sync as new features are added in the future.

This announcement post contains the detailed list of updates.

Download Buy Now

Let’s dig in and see a handful of the larger SyntaxEditor updates.

Cross-Platform Design

The internals of SyntaxEditor have been heavily refactored to support a cross-platform API across the WPF, UWP, and WinForms platforms. This allows SyntaxEditor features for the three platforms to be kept in sync moving forward.  The 2019.1 WPF and UWP versions of SyntaxEditor already have this codebase in place.

Carets and Selection

Multiple Selections

Editing with multiple carets

Multiple selections, each with their own caret, are now supported. A new selection can be added by holding the Ctrl key when clicking in the text area or clicking on the selection or line number margins.  Most edit actions have been refactored to fully support multiple selections. For instance, pressing Shift+Right Arrow will extend all of the selections by one character. 

Typing and copy/paste with multiple selections

Copying text from multiple selections unions the selected text, joining each range's text with a line terminator.  Pasting multi-line text into a view with the same number of selections as text lines being pasted will replace each selection with a related line from the pasted text.

Touch Selection Grippers

Selection grippers will show for the primary selection when touch input is used.

Caret Movement

Carets now support movement at both the start and end of word wrapped lines.

The caret in virtual space past the end of a line

Search Overlay Pane

A new search overlay pane displays over the upper-right of the active editor view when Ctrl+F (find mode) or Ctrl+H (replace mode) are pressed in a multi-line editor.  A toggle mode button on the search overlay pane switches between find and replace modes, and all common search options are supported via toggle buttons and other controls.  The search overlay pane can be closed by clicking the X button or by pressing Esc.

Basic find and replace operations are available in the search overlay pane

Ctrl+F3 will open the search overlay pane without focusing it, and will search forward for the currently-selected text. Ctrl+Shift+F3 will do the same but will search backwards.

F3 will search for the next match of the previously-used search options. Shift+F3 will search for the previous match of the previously-used search options.

If the SyntaxEditor.IsSearchResultHighlightingEnabled property is true, the search results can be highlighted while the search overlay pane is open. Closing the search overlay pane, clears the search result highlights.

IntelliPrompt

Metro Images

Metro Light and Metro Dark common image sets are now included as options instead of the existing Classic common image set.

Completion Match Highlights

As text is typed while a completion list is open, the text in each item that matches the typed text is highlighted.

Completion Filters

An auto-shrink filter is now available that can optionally trim down the items in the completion list based on typed text.

Completion filter buttons can narrow down the items in the list, such as all .NET types

Other filters can be added to completion lists, rendering as toggle buttons or even tabs.

Completion Matching

Various completion list item matchers and match options have been added, that allow for special item matching logic to be injected.  Numerous built-in item matchers are available such as starts-with, acronym, shorthand, etc.

Quick Info and Parameter Info

The quick info and parameter info tips have been updated to use the current editor background and syntax highlighting colors.

Splitting

The scrollbar splitter button now has a larger appearance.

Splitting a view, and the new option to drag to the bottom to keep the top view

The view splitter can be dragged to the bottom of the view to remove the split and keep the top view.

Scrolling and Zooming

Touch Scrolling

Smooth inertia-based touch scrolling has been added.

Horizontal Scrolling

Editor views can be scrolled horizontally with Shift+MouseWheel

Better logic was implemented for managing horizontal scroll maximums, especially when scrolling vertically.

Scroll API

New programmatic scroll methods were added that allow for aligning an anchor line to the top/center/bottom of a view with a specified pixel displacement, or scrolling by pixels.

ScrollBar Acceleration

The vertical scrollbar accelerates its scrolling speed the longer you hold the up or down button.

Margins

Line Number Customization

The first view line renders with line number 121 due to a custom origin number set on the document

A new line number provider language service was added that allows for complete customization of how line numbers are rendered in the line number margin.  In addition, a property was added to the document that sets the line number for the first line in the document, defaulting to one.

Ruler Margin

A optional new ruler margin was added that is useful for column display when working with fixed-width fonts.

Outlining Margin Highlights

Highlights render over contained lines when hovering over an outlining node in the outlining margin.

Line Modification Marks

Line modification marks now have improved logic that better tracks unsaved, saves, and reverted changes.

Indicator Glyphs

The rendering of built-in indicator glyphs was improved.

Editing

Delimiters

Options for delimiter (bracket) auto-complete and delimiter highlighting are available when delimiter-related language services are registered on the syntax language.

Triple Clicks

Added support for triple-clicks to select an entire view line. Dragging the pointer on the final click will extend the selection by view line.

Text Rendering

Text rendering now properly handles cultural editing concepts like complex glyphs, bi-directional text, etc.

.NET Languages Add-on

The C# parser and resolver were updated to support C# 7.3 syntax, and the VB parser and resolver were updated to support VB 15.8 syntax.  Much-improved resolver logic is now present that is far more accurate than in previous versions.

The IntelliPrompt completion list now shows toggle button filters for the various kinds of items displayed in the list.

Web Languages Add-on

Added advanced syntax language implementations for the JavaScript and JSON languages.

Python Language Add-on

This new add-on implements an advanced syntax language for the Python language.

Almost 100 Samples

We've added so many SyntaxEditor samples to this new version that we had to create a brand new Sample Browser app design to support them all!

UWP Controls 2019.1 Released

by Avatar Bill Henning (Actipro)
Thursday, August 22, 2019 at 12:09pm

We are pleased to announce the release of the 2019.1 version of our UWP Controls.  This version includes the massive SyntaxEditor enhancements and updates we’ve been working on that have previously been described as “SyntaxEditor vNext” in the blog.

This announcement post contains the detailed list of updates in the 2019.1 version.  Please be aware that Windows 10 Fall Creators Update (version 1709) or later and usage of the Microsoft's free 'Win2D.uwp' NuGet package are now required.

We also have published a maintenance release for the 2018.1 version.  All of the updates are listed in this announcement post, and are included in the 2019.1 version codebase as well.

Download Buy Now

Let’s dig in and see a handful of the larger SyntaxEditor updates.

Cross-Platform Design

The internals of SyntaxEditor have been heavily refactored to support a cross-platform API across the WPF, UWP, and WinForms platforms. This allows SyntaxEditor features for the three platforms to be kept in sync moving forward.  The 2019.1 WPF version of SyntaxEditor is already out and the WinForms version will follow later this year.

Text Rendering

Text rendering is many times faster than in the previous versions, making an enormous leap forward in performance.

Text rendering now properly handles cultural editing concepts like complex glyphs, bi-directional text, etc.

Carets and Selection

Multiple Selections

Editing with multiple carets

Multiple selections, each with their own caret, are now supported. A new selection can be added by holding the Ctrl key when clicking in the text area or clicking on the selection or line number margins.  Most edit actions have been refactored to fully support multiple selections. For instance, pressing Shift+Right Arrow will extend all of the selections by one character. 

Typing and copy/paste with multiple selections

Copying text from multiple selections unions the selected text, joining each range's text with a line terminator.  Pasting multi-line text into a view with the same number of selections as text lines being pasted will replace each selection with a related line from the pasted text.

Caret Movement

Carets now support movement at both the start and end of word wrapped lines.

The caret in virtual space past the end of a line

Virtual space is now supported at the end of lines when a new option is enabled.  Block selections can be made in virtual space at the end of lines, even without line end virtual space being enabled. This prevents the caret from snapping to an offset when making a block selection, which can sometimes be problematic.

Drag/Drop

Text drag and drop support has been added, allowing text to be quickly moved around the editor.

Search Overlay Pane

A new search overlay pane displays over the upper-right of the active editor view when Ctrl+F (find mode) or Ctrl+H (replace mode) are pressed in a multi-line editor.  A toggle mode button on the search overlay pane switches between find and replace modes, and all common search options are supported via toggle buttons and other controls.  The search overlay pane can be closed by clicking the X button or by pressing Esc.

Basic find and replace operations are available in the search overlay pane

Ctrl+F3 will open the search overlay pane without focusing it, and will search forward for the currently-selected text. Ctrl+Shift+F3 will do the same but will search backwards.

F3 will search for the next match of the previously-used search options. Shift+F3 will search for the previous match of the previously-used search options.

If the SyntaxEditor.IsSearchResultHighlightingEnabled property is true, the search results can be highlighted while the search overlay pane is open. Closing the search overlay pane, clears the search result highlights.

IntelliPrompt

Vector Images

All Metro images are vector-based and show crisply in high DPI

The Metro Light and Metro Dark common image sets are now in vector form and render beautifully in high DPI.

Completion Filters

Completion filter buttons can narrow down the items in the list, such as all .NET types

Completion filters have been updated so when there are multiple active filters with the same ICompletionFilter.GroupName, any one of those filters can includes an item.  Toggle button completion filters were changed to appear unchecked when they aren't active, which is more natural.

Ctrl Key Opacity Changes

The logic for making IntelliPrompt popups and the new search overlay pane semi-transparent when the Ctrl key is held has been refactored and improved.  A brief delay was added before the opacity change occurs.

Splitting

Splitting the editor to show two stacked views is now possible.

Splitting a view, and the new option to drag to the bottom to keep the top view

The view splitter can be dragged to the bottom of the view to remove the split and keep the top view.

Scrolling and Zooming

Touch Scrolling

Smooth inertia-based touch scrolling has been added.

Auto ScrollBar Visibility

The horizontal and vertical scrollbars now support an Auto visibility option that will only display then when necessary.

Horizontal Scrolling

Editor views can be scrolled horizontally with Shift+MouseWheel

Better logic was implemented for managing horizontal scroll maximums, especially when scrolling vertically.

ScrollBar Acceleration

The vertical scrollbar accelerates its scrolling speed the longer you hold the up or down button.

Scroll API

New programmatic scroll methods were added that allow for aligning an anchor line to the top/center/bottom of a view with a specified pixel displacement, or scrolling by pixels.

Margins

Line Number Customization

A new line number provider language service was added that allows for complete customization of how line numbers are rendered in the line number margin.  In addition, a property was added to the document that sets the line number for the first line in the document, defaulting to one.

Ruler Margin

A new optional ruler margin has been added.

Indicator Glyphs

The rendering of built-in indicator glyphs was improved.

TextStylePreview Control

The TextStylePreview control has been added that renders a highlighting style.

.NET Languages Add-on

IntelliPrompt completion list toggle button filters were added for the various kinds of items displayed in the list.  The IntelliPrompt completion filter UI (toggle buttons and tabs) only shows based on the available items in the unfiltered list. For instance, if there are no types in the list, no 'Types' toggle button filter is visible.

Python Language Add-on

IntelliPrompt completion list toggle button filters were added for the various kinds of items displayed in the list.  The IntelliPrompt completion filter UI (toggle buttons and tabs) only shows based on the available items in the unfiltered list. For instance, if there are no classes in the list, no 'Classes' toggle button filter is visible.

Web Languages Add-on

Full XML schema support, including validation and automated IntelliPrompt, has been added to the XML syntax language.