Staying true to our #WinUIEverywhere mission, our 3.5 release provides day-zero support for WinUI 3 Preview 4 and it brings support for 4 new WinUI controls – Navigation View, Progress Ring, Pager and Expander. In addition, we are solidifying our existing support for SkiaSharp and Xamarin.Forms 5.
‘Big bang’ features usually get the front news, but we want to emphasize just how much effort went into closing issues on our GitHub repo. We have closed additional 115 issues together with community – be it bugs, new features or performance improvements! Read on to see what’s new.
About Uno Platform
For those new to Uno Platform – it allows for creation of pixel-perfect, single-source C# and XAML apps which run natively on Windows, iOS, Android, macOS, Linux and Web via WebAssembly. Uno Platform is free and Open Source (Apache 2.0) and available on GitHub.
WinUI 3 Preview 4 Support
Microsoft has released the WinUI 3 Preview 4 today, and we have upgraded our templates and APIs support to target this version as well. You can create a new application from our dotnet new templates, which contains all the existing Uno Platform targets, as well as a .NET 5 Desktop packaged project application.
WinUI Navigation View Control
Consistent navigation is key to a successful user experience, so it is no wonder NavigationView is one of the controls we can find in almost every WinUI app. In this release we are bringing all the latest and greatest innovations of this control to all platforms Uno Platform targets. Apart from full support for multiple modes including top navigation, the new version allows you to add hierarchical navigation and footer menu items. With that, nothing limits you from structuring your navigation just the way you like!
WinUI Progress Ring Control
As part of the continued alignment with the WinUI APIs, we have been updating the ProgressRing source to add support for the Lottie animations-based version of the control. This allows for many new scenarios like custom animations and determinate progress display. Make sure to utilize this control in your app as an indicator of long-running operations – your users will be thankful!
WinUI Pager Control
We’ve also ported two new controls, PagerControl (thanks Martin) and Expander (thanks @robloo).
The Pager Control is from the WinUI documentation: A UI pager is a common control that lets a user page through content, rather than scroll or pan. A common experience is to provide preview/next buttons, and a way to jump to a specific page.
WinUI Expander Control
The Expander control, on the other hand, is a collapsible panel that allows for conditional toggling of visibility of content. Great scenario for Expander is to hide detailed information in your application to declutter the UI, while still giving users who like to explore the option to dive into the details.
SkiaSharp official support
Thanks to the SkiaSharp team (and Matthew Leibowitz) which has been working hard to provide support for WebAssembly, iOS, Android and macOS, we can now deprecate our SkiaSharp fork that served as a base for the official implementation and instead use the official SkiaSharp repo.
For WebAssembly specifically, this new implementation provides .NET 5 support as well as both a software and hardware accelerated versions of the canvases through SKXamlCanvas and SKSwapChainPanel respectively. You can browse a sample to get your application using SkiaSharp in our Samples repository.
Xamarin.Forms 5 support
We have upgraded our latest Xamarin.Forms renderers for Uno Platform to use Xamarin.Forms 5.0. You can use them to enable your application to run on WebAssembly by heading to our documentation here.
Other Significant Updates
- Support for the ContactPicker (@MartinZikmund)
- x:Load binding capabilities to selectively remove content from the UI tree (@JeromeLaban/Steve)
- x:Bind type cast syntax (@JeromeLaban)
- unoapp-uitest dotnet new template for Uno.UITest support (@JeromeLaban)
- DataTransferManager support (@MartinZikmund)
- WebView support on macOS (@ajpinedam)
You can browse the full changelog on our GitHub releases page.
To upgrade to latest release of Uno Platform please update your packages to 3.5 via your Visual Studio NuGet package manager! If you are new to Uno Platform, the best way to get started is following our official getting started guide.(5 min to complete)
Jerome Laban, CTO, Uno Platform