Skip to content

Instantly share code, notes, and snippets.

@grokys
Created December 1, 2015 22:17
Show Gist options
  • Save grokys/49d5eca7f33e1622c08e to your computer and use it in GitHub Desktop.
Save grokys/49d5eca7f33e1622c08e to your computer and use it in GitHub Desktop.
Perspex alpha 3 release announcement
layout title excerpt category tags comments
post
Perspex Alpha 3
Alpha 3 of Perspex is now out.
Perspex
perspex
c#
.net
true

We're pleased to announce that alpha 3 of Perspex is now available.

Perspex is a cross platform .NET UI framework inspired by WPF, with XAML, data binding, lookless controls and much more. Take a look at the video to see our current progress:

Get the alpha through NuGet and download our Visual Studio extension to get started.

Skia Backend and Initial Support for Android and iOS

@kekekeks has implemented a new skia backend that going forward should provide a multi-platform renderer that also works on mobile devices. The Direct2D backend is also being improved, but our Cairo backend is currently lacking a maintainer. If this sounds like it might interest you, come let us know in our Gitter room and help keep it alive!

XAML Binding Improvements

XAML binding was rather buggy and lacking in features in the last alpha, but should now be a lot more usable. We've also added some features above and beyond traditional XAML binding:

Binding to Controls

You can now bind to controls:

{% highlight xaml %} <TextBox Text={Binding ElementName=other, Path=Text} {% endhighlight %}

But in addtions we also have the shorthand form of:

{% highlight xaml %} <TextBox Text={Binding #other.Text} {% endhighlight %}

Binding negation

Ever lamented the hoops you have to jump though in XAML to negate a binding? Well we feel your pain and so now you can negate bindings just by adding a ! to the binding path:

{% highlight xaml %} Loading... {% endhighlight %}

MultiBinding and Async Bindings

We also have initial support for MultiBinding (only one-way at the moment) and you can also bind to Task and Observable and get the results you'd expect!

ListBox Multi-Select

ListBox now supports multiple selection, and unlike WPF the multiple selection can be bound two-way to a view model, enabling you to keep a simple list of selected items without IsSelected container style tricks.

XAML Control Themes

Control themes can now be defined in XAML, and the default theme has now been ported in its entirety to XAML. This is important because it means our XAML support is coming up to speed!

Designer Improvements

Many improvements have been made to the Visual Studio Designer extension including:

  • Zoom
  • Background color configuration
  • Attached property intellisense
  • Markup extension intellisense
  • clr-namespace support
  • Design.DataContext, Design.Width and Design.Height for setting design-time properties.

Direct and Read-Only Perspex Properties

PerspexProperty, like DependencyProperty is quite heavyweight, so we've added support for turning standard C# properties into Perspex properties, which also gives us convenient read-only properties. Read more about it in the documentation.

Conclusion

Things are moving fast, but we're still only at alpha 3, so there are still many things broken, missing features, performance problems, missing documentation and quite a few memory leaks. We'll be continuing to work on these as we move forward, but please file any bugs you find on our issue tracker and come join us in our Gitter room.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment