WPF Controls 2020.1 Released

Announcements Forum

Posted 17 days ago by Actipro Software Support - Cleveland, OH, USA
Avatar

A major new version of the Actipro WPF controls is now available.  This version is the culmination of many months of work to modernize themes across all Actipro and native WPF controls, create a unique and powerful framework to fully customize theming in your apps, and build a Theme Designer application for configuring/previewing theme definitions.  In addition to those features, we’ve added new controls, implemented a new Sample Browser application design, provided .NET Core assemblies and NuGet packages (available at https://www.nuget.org/profiles/ActiproSoftware), and created a new product installer.

Detailed Update List

Charts

  • Fixed a bug where the theme's major/minor tick brushes weren't being applied to auto-generated axes.

Docking/MDI

  • Added the ToolWindowContainer.TitleBarMinHeight property that sets the title bar's minimum height.
  • Updated tabbed MDI document list buttons and tool window title bar options buttons to be PopupButtons for better pressed state appearance.
  • No longer included the optional Docking/MDI 'legacy' assemblies containing the product's pre-2016.1 codebase.

Editors

  • Added the AutoCompleteBoxEventArgs.OriginalText property, which contains the control's text prior to a selected item overriding it.
  • Improved integration logic between all Editors and PropertyGrid.
  • Improved the DoubleEditBox and SingleEditBox parsing of values when using a percentage format.
  • Updated the edit box glyphs like drop-down arrows to use theme glyphs.

Gauge

  • Added the PointerBase.SnappingMode property that can determine when snapping occurs (always, only when dragging, only for programmatic changes).

Grids

  • Added a TypeDescriptorFactory feature that looks at a PropertyGrid's manually-specified PropertyModel instances with CanAutoConfigure set to true and a Value binding, and automatically populates most of the PropertyModel properties.
  • Added the IPropertyModel.StandardValuesSelectedValuePath property that specifies an optional path to bind to ComboBox.SelectedValuePath when displaying a property editor for limited standard values.
  • Added the PropertyGrid.ImmediateStringValueTemplate property and the related DefaultValueTemplateKind.ImmediateString enum value to select it. The new DataTemplate is the same as the DefaultStringValueTemplate but uses a binding that updates immediately as text is typed instead of only on focus loss.
  • Updated PropertyModel to inherit FrameworkElement, allowing for manually specifying PropertyGrid properties in XAML with full data binding support, and without the need for proxy object workarounds.
  • Updated PropertyGrid so that if a PropertyGridItem with IsTabStop = false is clicked, focus attempts to move immediately into the value cell.
  • Updated how TreeListBox tracks its active tree node when the selection changes.
  • Updated the TreeListBoxItemAdapter.OnDrop method to be called with the TreeItemDropArea result from the previous OnDragOver method call.
  • Fixed a bug where merged property models didn't track StandardValuesDisplayMemberPath properly.

Navigation

  • Updated the NavigationBar glyphs to use theme glyphs.

Ribbon

  • Made massive updates to modernize the Ribbon and all of its controls so that it renders similar to the latest Office version.
  • Added subtle animations for things like Ribbon selected tab underlines, and animating the selected tab's content into view.
  • Updated Backstage in modern themes to use WindowChrome's new overlay feature, and to animate into place.
  • Updated Ribbon to use its inherited font size, allowing it to keep a consistent appearance with the rest of the containing Window.
  • Updated ButtonBase.Command property changes to not immediately coerce the CommandParameter property.
  • Removed the Ribbon.UseScenicLayout property since the old Office 2007 orb application button style is no longer supported.

Shell

  • Updated how ShellTreeListBox selection changes are tracked.

SyntaxEditor

  • Added a guard against a possible InvalidOperationException from PointToScreen when repositioning IntelliPrompt popups.
  • Added a ThreadedParseRequestDispatcher constructor overload that allows for altering the thread priority.
  • Fixed a bug where a double-clicked completion item might lead to a SyntaxEditor within a Popup to not regain mouse capture.
  • Fixed a bug where the selection in a non-active view of the current document didn't always update properly.

Themes

WindowChrome
  • Improved the WindowChrome template that implements a custom chrome for Windows with many new features.
  • Added WindowChrome support for hiding the entire window title bar.
  • Added WindowChrome support for showing different window title bar text from the text displayed in the Windows taskbar.
  • Added WindowChrome support for hiding the window title bar text.
  • Added WindowChrome support for replacing the title bar text with custom header UI.
  • Added WindowChrome support for injecting custom UI in the left side of the window's title bar, next to the icon.
  • Added WindowChrome support for injecting custom UI in the right side of the window's title bar, next to the system title bar buttons.
  • Added WindowChrome properties for controlling layout in scenarios where not all title bar elements fit in the available space.
  • Added WindowChrome support for optionally having the Window.Background brush extend to fill the title bar area background as well as the window's content area background.
  • Added WindowChrome support for optionally having the Window.Content extend to fill the title bar area.
  • Added WindowChrome support for a fully-customizable and themeable WPF-based title bar system menu.
  • Added WindowChrome support for animated overlays containing temporary custom content that is positioned over the entire window, such as for a home screen, an Office-like Backstage, or a processing indicator.
  • Added WindowChrome support for an alternate title bar and title bar button style in certain situations.
  • Added WindowChrome support for setting the minimum title bar height.
  • Added the attached WindowChrome.TitleBarHeight property that returns the final arranged title bar height of a window using WindowChrome.
  • Added the attached WindowChrome.TitleBarLeftContentWidth and TitleBarRightContentWidth properties that return the final arranged widths of the left/right sides of a window title bar using WindowChrome, accounting for icons, buttons, and custom content.
  • Added several new built-in glyph templates for use in custom title bar buttons.
  • Added many new Themes QuickStarts that show off new WindowChrome features.
  • Simplified WindowChrome by removing Aero glass features that were only available in Windows 7, which is no longer supported by Microsoft.
  • Fixed a WindowChrome bug where an initially-maximized Window may show a black border on a secondary monitor.
DynamicImage and ImageProvider
  • Added the ImageProvider class that supports dynamic manipulation of both vector and raster images in multiple ways.
  • Updated the DynamicImage control, a drop-in replacement for the native Image control, to be the primary UI mechanism for interfacing with ImageProvider and its features.
  • DynamicImage supports chromatic adaptation (color shifting) for images, which allows images designed for light themes to be automatically adjusted for use in dark themes.
  • DynamicImage supports dynamic loading of pre-defined high-DPI and/or theme-specific image variations for raster images.
  • DynamicImage supports automatic conversion of an image to grayscale and optional transparency when the control is disabled.
  • DynamicImage supports conversion of monochrome images to use the current foreground color.
  • Added a DynamicImage QuickStart sample to demonstrate many usage scenarios.
  • Added optional ImageConverter.Width, Height, and ImageProvider properties that are passed onto the created DynamicImage instance.
Menus and Popups
  • Added the TitleBarMenu control, which is a Menu control that is tailored for usage in window title bars.
  • Improved our styles for native menu items by increasing their size, adjusting element alignment, and rendering input gesture text in a lower-contrast color.
  • Added theme definition options for menu corner radius and padding, along with menu item column widths and padding.
  • Added a theme definition option for popup shadow direction.
  • Added a new SharedResourceKeys.MenuHeadingStyleKey style that makes a MenuItem render like a heading.
ScrollBars
  • Adjusted the ScrollBar template and added new theme resources to support thumb brush, thickness, and corner radius customization.
  • Added a new ScrollThemeProperties.HasButtons attached property that can be set on ScrollViewer or ScrollBar instances to determine if they have buttons, or only a thumb.
Checks and Radio Buttons
  • Updated CheckBox and RadioButton bullets to scale based on the control's font size.
  • Added theme definition options for bullet glyph kind (normal, inverted, accent), bullet relative size, border width, and CheckBox corner radius.
  • Modernized the check glyph.
Other Controls
  • Adjusted various Button, ToolBar, Expander, Slider and other related control templates to have a more modern appearance.
Miscellaneous
  • Added a theme definition option for arrow kinds (chevron vs. filled triangle).
  • Added the ThemeManager.RegisteredThemeDefinitions property, and RegisterThemeDefinition, UnregisterThemeDefinition, GetThemeDefinition, and CreateDefaultThemeDefinition methods, all of which deal with theme definitions.
  • Added the ThemeManager.SystemApplicationMode property, which returns the system preferred theme mode (light, dark, or high-contrast). The related SystemApplicationModeChanged event was also added.
  • Added the ThemeManager.RegisterAutomaticThemes method, which can automatically switch application themes to specified themes when SystemApplicationMode changes.
  • Added the ThemeManager.IsAnimationSupported property, which determines if UI animation should be enabled.
  • Added the ThemeManager.IsGraphicsHardwareAccelerationSupported property, which returns whether hardware-accelerated graphics are available on the system.
  • Obsoleted the ThemeName enumeration and added a static ThemeNames class with updated theme names. See the Themes conversion documentation on how several theme names changed.
  • Added new theme brush resources for the entire theme definition color palette.
  • Added new theme font size resources for an absolute ramp of font sizes as well as several contextual font sizes.
  • Removed various unused theme resources from AssetResourceKeys and added many new ones.
  • Removed GlassWindow since Windows 7 and glass are past end of life.
  • Refined the high-contrast theme and its use of system colors. Only use this theme when Windows itself is in high-contrast mode.
  • Moved the Aero (Windows 7) theme and old Office 2010 themes to a new ActiproSoftware.Themes.Aero.Wpf assembly, which can optionally be used if those themes are desired.
  • Removed Luna (Windows XP) themes.
  • Simplified how XAML theme resources were loaded in each product assembly, removing use of the theme catalog system where it wasn't necessary and improving performance.

Views

  • Added the MultiColumnPanel control that can arrange child elements in columns based on available width.

Wizard

  • Updated Wizard to try and focus a child control on the selected page when focus is set to the Wizard control.
  • Removed AeroWizardWindow since it was based on the old GlassWindow class, and updated the Aero wizard demo to show a more modern Window interface using WindowChrome.

Shared

  • Added the ShadowChrome primitive control that can render modern drop shadows using optional shader effects, and a related sample.
  • Added an AutoCollapseStackPanel control that can be used in WindowChrome title bars to collapse elements that don't fully fit in the available space.
  • Added the CharacterCasingConverter value converter, which can be used to convert a string's casing to upper or lowercase.
  • Improved the UIColor.Luminance calculation logic.
  • Improved the UIColor.FromMix calculation logic.
  • Updated the AdvancedTextBlock's overflow tooltip to use the same font characteristics as the control.
  • Updated TransitionPresenter logic.
  • Fixed a bug where MultiplicationConverter didn't use the designated CultureInfo when parsing numbers.
PopupButton
  • Refactored and improved the PopupButton control's internal logic, and created a new QuickStart sample to show off all PopupButton functionality.
  • The PopupButton template now includes a Popup, with a default border, background, corner radius, and padding that are all customizable via new PopupButton properties.
  • Added a new CenterMerged PopupButtonDisplayModes option, and changed the default PopupButton.DisplayMode property value to Merged, which is the most common usage.
  • The ButtonOnly display mode will now behave like Merged, except will render without a popup indicator. This display mode allows popups/menus to be displayed without an indicator on the button.
  • If the PopupMenu property is specified, it will now take priority over popup content supplied via PopupContent, PopupContentTemplate, and PopupContentTemplateSelector.
  • See the conversion documentation for information on a couple unnecessary properties that were removed and one that was renamed.

All

  • Updated the main sample application to use a beautiful new modern design, and updated hundreds of samples to use a cleaner presentation.
  • Created a new product installer experience.
  • Some breaking changes were made to accommodate the themes updates. See the 'Converting to 2020.1' documentation topic for information on any breaking changes.

About WPF Controls

WPF Studio / WPF Essentials Licensing

You can purchase our WPF controls individually if you wish however you have the option to purchase all of them in the WPF Studio bundle. Purchasing the bundle saves over 60% over purchasing all the WPF controls individually.

The WPF Essential bundle saves over 45% over purchasing its bundled controls separately.

That's some incredible savings!

WPF Studio Benefits

All WPF control licenses automatically include a free subscription for a year of free upgrades to any new versions that are released. At the end of the year, you may renew your license for another year to keep the free upgrade benefits active.

In addition, if you own a WPF Studio license, you are automatically eligible to receive free licenses for any new WPF control products added to WPF Studio that come out within your year period. This benefit does not apply to WPF Essentials customers.

Evaluation Download

You can download an evaluation of all our WPF controls from this page:

http://www.actiprosoftware.com/download/evaluations

Upgrade to WPF Studio

Contact our sales team for information on discounted pricing for upgrading from one of our older WPF control product licenses to a license for WPF Studio, WPF Essentials, or a new version of a WPF control product.

Free Upgrades

If you own an older WPF Studio version or one of its products and would like to upgrade to this latest version, please click the request a free upgrade link on your organization account page's 'Purchases and Licenses' tab. The link will appear there if your upgrade eligibility is active.

[Modified 10 days ago]


Actipro Software Support