WPF Controls v22.1 Released

by Avatar Bill Henning (Actipro) - 1 comment
Tuesday, December 14, 2021 at 4:03pm

This version includes new controls, new WindowChrome features for Windows 11, many improvements for SyntaxEditor and its add-ons, updates to nearly all WPF products, and now includes .NET 5 assemblies in the NuGet packages with validated .NET 6 compatibility.

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

Download Buy Now

Here's a look at some of the new features.

Shared Library

User Prompts

Added a rich API that can create modern, themed dialogs for anything from simple messages and confirmations, to more advanced scenarios like exception notification dialogs or file copy dialogs.

An example exception dialog with multiple optional sections, all of which can be configured to any custom content

We even include a ThemedMessageBox object with static methods that match the native WPF MessageBox API.  Our themed version of the MessageBox uses a chromed WPF Window instead of Win32 dialogs (as the default WPF MessageBox does), along with fluent icons.  This is important when your app is in a dark theme because it allows all message/confirmation dialogs to match the theme.  You can instantly modernize all message box display in your app to our implementation with a single line of code too.

ToggleSwitch

Added a new control that is often seen as a replacement for a traditional CheckBox in modern user interfaces.

The three available states in the default ToggleSwitch style

It's easy to customize the appearance of ToggleSwitch to support other styles as well.

PopupButton

Made numerous updates to PopupButton to improve focus handling, tooltip display, key handling, and knowing when to close itself.

Themes

WindowChrome Windows 11 Support

WindowChrome has added support for Windows 11 where it will use rounded corners and system-rendered drop shadows.  In addition, hovering over the title bar's Maximize or Restore buttons will show the Windows 11 Snap Layout menu.

WindowChrome now renders Windows 11 windows with rounded corners, system drop shadows, and supports the Snap Layout menu

SyntaxEditor

Synchronization QuickStart

A new sample demonstrates synchronizing the scroller and splitter of one editor instance with another.

Drag and Drop

Improved drag/drop interaction and related scrolling in several scenarios, and add a new Drag and Drop QuickStart sample.

Single-Line Mode QuickStart

Added a formula example with alternate style for nested parentheses.

Styles that highlight nested parentheses

Editing and Caret Movement

Made many small improvements in the areas of editing and caret movement, especially in certain special contexts.

IntelliPrompt

Improved popups to reposition themselves as the editor is scrolled.

Multiple IntelliPrompt popups

Vertical Scrolling

The vertical scrollbar has been updated to handle collapsed regions more smoothly.

SyntaxEditor .NET Languages Add-on

C# Parser

Updated to support C# 8.0 syntax.

Go To Definition QuickStart

A new sample that demonstrates using an IResolver to navigate to the source of a reference.

C# Outlining

The outliner will now create nodes for code-level constructs such as block statements by default.

Code outlining now works on blocks, like 'for' statements

SyntaxEditor Web Languages Add-on

JavaScript Parser

Updated to support ECMAScript 2021 (12 Edition) syntax.

JSON Syntax Language

Added a constructor for whether the language should support JavaScript style comments, as in Microsoft’s JSONC variant.

Optional JavaScript comment support in JSON

SyntaxEditor Python Language Add-on

Python Parser

Updated to support Python v3.9.5 syntax.

Python Resolver

Updated to support namespace packages.

Grids

FilterApplied Event

Added a 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

TreeListBox Updates

Added a new item adapter method that can improve performance in large trees when searching for a tree node, and improved focus tracking and filtering.

Editors

Commit Trigger Changes

Updated edit box commit triggers so that commit on focus loss is now optional.

Improved Cultural Support

Updated the numeric edit boxes to support input of Full-width and Arabic-Indic digits.

Charts and Micro Charts

New Aggregation Kinds

Added SignedMaximum and SignedMinimum aggregation options that compare against absolute values while retaining the sign of the original value; e.g., -5 is greater than 4.

.NET 5 Assemblies Added to NuGet Packages

The WPF Controls NuGet packages on nuget.org now contain compiled product assemblies that target:

  • .NET 5
  • .NET Core 3.1
  • .NET Framework 4.5.2

Projects that target .NET 5 or later will use the .NET 5-based assemblies, and projects that target .NET Framework 4.5.2 or later will use the .NET Framework 4.5.2-based assemblies.

.NET 6 Support

We’ve also validated that our assemblies work great in .NET 6 applications.

WPF, WinForms, and UWP Controls Maintenance Releases

by Avatar Bill Henning (Actipro) - 1 comment
Wednesday, September 8, 2021 at 8:03pm

WPF Controls v21.1.2 Maintenance Release

by Avatar Bill Henning (Actipro)
Tuesday, July 13, 2021 at 12:33pm

Our v21.1 WPF controls have been updated with a new maintenance release that is now ready for download.  This version has many updates for SyntaxEditor along with improvements for Ribbon, Docking/MDI, and other products.

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

Download Buy Now

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.

WPF Controls v21.1 Released

by Avatar Bill Henning (Actipro)
Monday, February 22, 2021 at 7:51pm

We are pleased to announce the release of the 21.1 version of our WPF Controls. For this version, we have modernized many aspects of our WPF Controls infrastructure. A number of these changes will allow us to be more agile moving forward, while at the same time allowing for collaboration with customers.

Download Buy Now

This announcement post contains a summary list of v21.1 updates.

Let’s take a look at some of the largest changes.

.NET Platform Minimums

First, we have updated our minimum .NET platform versions to versions that are still supported by Microsoft:

  • Updated .NET Core assemblies to target .NET Core 3.1 instead of .NET Core 3.0.
  • Updated .NET Framework assemblies to target .NET Framework 4.5.2 instead of .NET Framework 4.0.

Next, we validated that .NET 5 applications can successfully reference our NuGet packages and work as expected.  .NET 5 applications will use our .NET Core 3.1 assembly variations, since .NET 5 is effectively the next version of .NET Core 3.1, just under a more concise name.

NuGet Packages

Speaking of NuGet packages, v21.1 is available on nuget.org.  This is the quickest way to reference our WPF Controls from any project type: .NET 5, .NET Core 3.1, or .NET Framework 4.5.2 or later.

Documentation Updates

We have ported all our WPF Controls product documentation from an older Sandcastle-based configuration to a newer DocFX-based configuration.  All our documentation topics are now written in Markdown and DocFX generates the API-related topics. 

The offline documentation that used to ship in our product installer as a CHM (compiled HTML Help) file is now distributed in HTML files that can be opened in your favorite browser.

Online Documentation

Part of the modernization efforts in this version have been geared towards removing the requirement for customers to download and run our product installer to work with our WPF Controls.  The NuGet packages allow you to access the assembly binaries from any project, but how do you access documentation?

WPF Controls online documentation

We have added online product documentation for the WPF Controls on our web site. Full documentation is now always at your fingertips, available from anywhere, even your phone.  The online documentation includes the entire API reference and deep links into Microsoft Docs where appropriate for base CLR types.

GitHub Repository

Assemblies are accessible via nuget.org and product documentation can be viewed on our web site.  How about getting product sample without an installer? 

We have solved this by creating a new “WPF-Controls” GitHub repository that contains the full source of our sample projects, and even our documentation topics.  You can view the sample project source directly in the GitHub repository, or if you prefer to run the samples, you can clone the repo to your machine and run them there.

Actipro's WPF-Controls GitHub repository

By having our samples and documentation source now available to the public, we hope that customers may be willing to contribute where they see opportunities for enhancements in those areas.

Windows Workflow Designer Integration Sample

Our sample project that shows off integration of a rehosted Windows Workflow Designer with SyntaxEditor (as an expression editor) using the .NET Languages Add-on, along with Docking/MDI and Themes has been refactored into a single project with improved code organization and commenting.

The Windows Workflow Integration sample

The sample is now included as an option in our product installer, as well as within the GitHub repository.

Backend Build Infrastructure

While not directly affecting customers, we have internally moved from a build infrastructure that was based on PowerShell scripts to a newer one based on the NUKE project.  NUKE allows you to build a console-based app that is pure C# and has tons of functionality already baked into it.  We have been so happy with the build framework that we now sponsor its author on GitHub.

In addition, we have moved our internal builds for the WPF Controls off Azure DevOps and over to GitHub Actions.  Having source, issue-tracking, and builds (via Actions) all in one place on GitHub has been a win for us internally and should allow us to be more agile moving forward.

Summary

We are really pleased with the results of our efforts to move to a more open, modern infrastructure.  Customers can continue to download our product installer to easily get everything they need.

Or they can alternatively choose to use nuget.org for products assemblies, view online documentation on our web site, and clone our Github repository for samples.

Let us know what you think of these updates in the comments below, and please star our “WPF-Controls” GitHub repository.