Blog

Avalonia 0.7 Release

Published
Tuesday, 30 October 2018
Category
Release
Author
Dan Walmsley

We are pleased to announce that Avalonia 0.7 has been released.

This is a big release and you can now build your UI once and deploy on all desktop platforms.

0.7 is an important milestone, we now recommend that Avalonia is suitable for us in production provided you are able to accept some likely small changes to API when the next version is released.

The easiest way to get started with Avalonia is to install our Visual Studio plugin and use the templates we provide there or use our .NET core templates. Check out our samples for some examples of how to get started writing an application.

There have been many bug fixes, performance optimizations and features added. Here is a list of the biggest new features:

CSS-like Animations & Transitions

#1461 @jmacato has implemented CSS-Like Animations and Transistions.

A quick example:

<Style Selector="Border.Rect1:pointerover">
    <Style.Animations>
        <Animation Duration="0:0:2.5"
                    RepeatCount="4"
                    FillMode="None"
                    PlaybackDirection="AlternateReverse"
                    Easing="SineEaseInOut">
        <KeyFrame Cue="20%">
            <Setter Property="RotateTransform.Angle" Value="45"/>
        </KeyFrame>
        <KeyFrame Cue="50%">
            <Setter Property="ScaleTransform.ScaleX" Value="1.5"/>
        </KeyFrame>
        <KeyFrame Cue="80%">
            <Setter Property="RotateTransform.Angle" Value="120"/>
        </KeyFrame>
        </Animation>
    </Style.Animations>
</Style>

New Stable OSX backend

#1977 myself (@danwalmsley) and @kekekeks have implemented a new stable backend for OSX. You will now get a highly stable and responsive app on OSX.

The new backend uses the COM interfaces, and backends for other platforms can be written natively in any language this way. If you are interested in bringing support to a new platform this way please get in touch.

Some Avalonia applications can be seen running on the new backend below: OSXApps

Custom font support

#1564 @gillibald has added support for embedded fonts and font fallbacks.

You can now declare several fonts like so:

<Window FontFamily="Segoe UI, Lucida Grande, Ubuntu" />

Font names are seperated by , and Avalonia will choose the first one available on the system.

If you embed a TTF or OTF file inside your binary as an embedded resource you can declar a font like so:

<Window FontFamily="resm:Assembly.Name.Folder.?assembly=Assembly.Name#Ubuntu" />

Where your assembly is "Assembly.Name" and you have a series of .ttf files inside "Folder" such as Ubuntu-Bold.ttf, Ubuntu-Italic.ttf, Ubuntu-Medium.ttf, etc.

OpenGL-accelerated Skia drawing for Win32/GTK/OSX backends

#1935 @kekekeks has added support for OpenGL on all platforms.

On OSX this is enabled by default. On GTK you can enable this by passing Gtk3 options to the UseGTK3 appbuilder extension method.

for example:

var result = AppBuilder.Configure<App>();

result.UseGtk3(new Avalonia.Gtk3.Gtk3PlatformOptions
{
    UseGpuAcceleration = true
});

On Windows as long as the files: libegl.dll and libglesv2.dll are either available in the system path or deployed alongside your applications binaries and you are using Skia backend (default in this release) then GPU acceleration will be enabled. Otherwise Avalonia will fallback to software rendering.

Tip: the required dlls are distributed as part of Chrome and so are readily available.

DataGrid Control

A datagrid control is now available at: https://github.com/AvaloniaUI/DataGrid

Thanks to @sdoroff for this.

Other notable changes include:

  • Add ReactiveUserControl and ReactiveWindow #1989 and Support ReactiveUI WhenActivated #1951
  • Extend Debugging tools: Event Viewer #1888
  • Performance optimizations: #1703 #1695 #1694 [#1690]((https://github.com/AvaloniaUI/Avalonia/pull/1690) #1685
  • Add StringFormat to Binding. #1684
  • Allow LINQ Expressions for Binding Expressions #1667
  • PasswordChar support for TextBox #1544
  • A new grid layout algorithm to improve performance and fix some bugs #1517
  • Added Thickness support for BorderThickness and CornerRadius #1462
  • New controls: Numeric up/down control added #1457 Added AutoCompleteBox control #1427 DatePicker control #1367
  • Drag drop #1417

Getting started

Follow instructions here.

Special Thanks

Avalonia is only possible because of the volenteers that work on it so thanks for all the hard work of: grokys, jkoritzinsky, kekekeks, jmacato, wieslawsoltes, gillibald, donandren, sdoroff, boombuler, walterlv

The best way to support Avalonia is to get involved, implement a feature, fix a bug or help test. See contributing for information on how to get started.

Otherwise you can sponsor Avalonia financially via OpenCollective.

We hope you enjoy developing with Avalonia please let us know what you are building.

danwalmsley


A new MacOS backend for the next version of AvaloniaUI

Published
Tuesday, 09 October 2018
Category
Release
Author
Dan Walmsley

Many of you who have been using Avalonia cross platform will have realised that there were issues with the Mac OSX backend.

Read more...

Avalonia Beta 1

Published
Sunday, 18 February 2018
Category
Release
Author
Steven Kirk

We’re pleased to announce that Beta 1 of Avalonia is now available.

Read more...

Avalonia Alpha 5

Published
Monday, 08 May 2017
Category
Release
Author
Steven Kirk

Screenshot

Read more...

Avalonia Logical Tree Weirdness

Published
Saturday, 03 September 2016
Category
Internals
Author
Steven Kirk

Avalonia has a similar concept of logical and visual trees to other XAML frameworks such as WPF, UWP and Silverlight. However when you take a careful look at the logical tree, it can be seen to function a little strangely at times!

Read more...