Skip to content

Version 1.5

1.5.52-preview2

Color Palettes for DeltaDesign Theme

The new version introduces color palettes for the DeltaDesign visual theme. A color palette is a predefined set of colors applied to the base theme, allowing users to quickly switch styling and accent colors.

whats-new-v15-theme-color-palettes

Applying a palette dynamically updates the color values of key UI elements, including:

  • Window, panel, and container backgrounds.
  • Editor backgrounds in various states.
  • Row and cell backgrounds in data-aware controls.
  • Selection highlights, hot-tracked elements, and focused control accents.
  • And more.

DataGrid and TreeList

Total Summaries

The DataGrid and TreeList controls can now calculate total summaries against their rows and display the results in a summary footer at the bottom of the control.

whats-new-v15-total-summaries

  • Summary footer — Both controls display a summary footer that shows aggregate values calculated across all rows.
  • Built-in summary types — Sum, Min, Max, Count, and Average.
  • Multiple summaries per column — Each column can display more than one summary calculated against that column's values.
  • Cross-column summaries — You can calculate a summary against one column and display the result in another column's footer cell.
  • Runtime summary management — End users can add and remove summaries using a built-in dropdown menu and the Summary Editor dialog.
  • Custom summaries — You can handle the CustomSummary event to calculate your own aggregate values when the built-in types aren't enough.

Row Drag-and-Drop Enhancements

Initially, the DataGrid and TreeList controls prevent rows from being dropped over the empty area (the area below all rows). Starting with v1.5, you can handle the DragOver event to allow row drop operations over the empty area. Rows dropped within this area are appended at the end of all rows.

private void ProductsInStockGrid_DragOver(object sender, DataGridDragEventArgs e)
{
    if (e.DropPosition == DropPosition.EmptyArea)
        e.Effects = Avalonia.Input.DragDropEffects.Move;
}

You can also handle the DragOver event to forcibly change how rows are inserted when dropped. For example, the following DragOver event handler force rows to always append at the end of the control.

private void ProductsInStockGrid_DragOver(object sender, DataGridDragEventArgs e)
{
    e.DropPosition = DropPosition.EmptyArea;
    e.Effects = Avalonia.Input.DragDropEffects.Move;
}

'Select All' in Column Chooser

The DataGrid and TreeList controls now include the (Select All) command in the Column Chooser.

Users now can select or clear all columns in a single action instead of checking each column individually.

datagrid-treelist-columnchooser-selectall

Application Services

This release introduces Application Services — a set of platform-agnostic services for working with windows, dialogs, and application-wide appearance settings directly from your ViewModels, without referencing any Avalonia window type.

whats-new-v15-app-services

You can invoke services from your ViewModel code to:

  • Open windows
  • Show Save File and Open File dialogs
  • Display message boxes and custom modal dialogs
  • Identify the active window
  • Customize the settings of the current Eremex visual theme

The services decouple your ViewModels from the UI framework. You access services through well-defined interfaces. The platform-specific work (creating windows, resolving owners, showing dialogs, etc.) is handled internally by the service.

Available Application Services include:

User Interaction Services

Service Description
IMessageBoxService Shows standard message boxes with fixed button sets defined by the MessageBoxButtons enumeration (Ok, Ok|Cancel, Yes|No|Cancel, Yes|No, Abort|Retry|Ignore, and Retry|Cancel).
IDialogService Shows dialogs from ViewModel code, so that a ViewModel can ask the user a question without referencing any window type. A dialog is driven by a dialog ViewModel. You can also implement a View to display as the dialog's content. This View is located through the ViewLocatorAttribute applied to the dialog ViewModel.
IChoiceDialogService Shows a dialog with an arbitrary set of buttons and returns the result of the pressed one.
IWindowService Shows non-modal windows from ViewModel code, so that a ViewModel can open a window without referencing any window type. The counterpart for modal dialogs is IDialogService.

File Services

Service Description
IOpenFileDialogService Shows the platform Open File dialog from ViewModel code in sync or async mode.
ISaveFileDialogService Shows the platform Save File dialog from ViewModel code in sync or async mode.

Infrastructure Services

Service Description
IWindowsManager Tracks the active window of the application. Dialog services use the IWindowsManager service to get the default owner for newly created dialogs.
IAppearanceService Lists visual theme settings and applies the chosen theme variant.

Charts

Advanced Line Customization with LineStyle

Chart objects now provide advanced options of the LineStyle type for customizing lines. LineStyle exposes properties that give you full control over how lines are rendered.

whats-new-v15-chart-linestyle

These properties include:

  • Thickness — The stroke thickness.
  • Dashes — The dash pattern for dashed lines.
  • DashOffset — The offset at which the dash pattern starts.
  • LineCap — The shape used at both ends of a line.
  • LineJoin — The join style for the ends of two consecutive lines.
  • MiterLimit — The limit of the thickness of the join on a mitered corner.

New line customization is available for:

  • Graph lines in the following series views: all Line and Area Series Views, Lollipop Series View, Range Area Series View, Polar Line and Polar Range Area Series Views, and Smith Line Series View.
  • Constant Lines in supported Series Views

    The ConstantLine.Thickness property has been deprecated. Use the LineStyle.Thickness option instead.

Docking UI

The DockManager component now provides a new CustomizeDockGuide event that allows you to dynamically hide specific dock guides and individual guide items at runtime.

whats-new-v15-docking-dock-guides

Editors Library

The SpinEditor control now includes a new AllowRoundOutOfRangeValue property that controls whether out-of-range values entered by a user are automatically rounded to the nearest valid value. A range of valid values can be limited using the Minimum and Maximum properties.

Breaking Changes

DateEditor and SpinEditor - Forced Masked Mode

The DateEditor and SpinEditor now always work in masked mode — MaskType.DateTime and MaskType.Numeric respectively. It is no longer possible to disable masked mode (MaskType.None) or enable an incompatible mask mode for these editors.