github unoplatform/uno 3.3.0

latest releases: 4.1.0, 4.0.7, 4.0...
3 years ago

WinUI 3.0 Preview 3 is a big step towards shipping the final version of WinUI.

We at Uno Platform team are happy to report that Uno Platform already works with the latest WinUI preview. Our sincerest thanks to WinUI team who keeps us posted on their progress and allows us to make modifications to Uno so that our joint developer base can use the latest and greatest bits right away.

In addition to shipping support for Preview 3 the team also managed to ship additional features in our 7th release in 2020.

WinUI 3 Preview 3 support

We’re aligning the API surface from WinUI 3.0 Previews in Uno, alongside adding support for the WinUI Desktop project template. The Desktop template enables WinUI applications to use the full Win32 and WinRT API with .NET 5, without running in the UWP sandbox.

To create an application using the WinUI 3 API set, run the following command:

dotnet new -i Uno.ProjectTemplates.Dotnet
dotnet new unoapp-winui -o MyApp

This will create a brand-new project to experiment with WinUI 3 Preview 3 and Uno.

You can find up-to-date information about dotnet new templates in our documentation.

A few points about the WinUI 3 Preview support:

  • Debugging and running the Windows Desktop project must be done using the “MyProject.Windows.Package” project, not the “MyProject.Windows.Desktop” package (you will experience Startup exceptions otherwise).
  • The WinUI+UWP project created by the template does not yet support .NET 5, but supports C# 8.0 and .NET Standard 2.0 libraries.
  • In order to run the WinUI 3 Windows Desktop and UWP heads, it's best to install Visual Studio 2019 16.9 Preview 1. For the other platforms, you can choose recent stable builds of Visual Studio 2019.

Android 11 and iOS 14 Support

Uno is now providing Android 11 support and deprecates the use of Android 9, which Google stopped supporting as of November 1st.
If your application was targeting the API level 28 (Android 9), you can upgrade to Android 10 (Level 29) or 11 (Level 30) in your application’s property pages.

Support for KeyUp and KeyDown Skia backends

Keyboard was a big ask from the community, and the first consumer of this feature is the Uno Calculator for Linux. We’ve updated the Snapped application to enable keyboard support to input numbers and operators.

Get it from the Snap Store

We've also updated our appimage support for the Linux Calculator, in case you're on a distribution that does not support snap, or snap is not installed.

How to Upgrade

To upgrade to latest release of Uno Platform please update your packages to 3.3 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.

Here's the full changelog:

Features

  • Add template support for WinUI Desktop (063f98e)
  • skia: [GTK][WPF][Tizen] Add CoreWindow.[KeyUp|KeyDown] and UIElement.[KeyUP|KeyDown] (0e89271)
  • Add resources files with string translations (3dc5cd4)
  • Add resources Keys (3649f52)
  • Localize Drag and Drop Caption text (cda1afb)
  • Move Drag n Drop files into directory (34f74fe)
  • android: Add support for Android 11, remove Android 9 support (f7774e6)
  • DatePicker: Enable date part hiding on button (efca12c)
  • DatePicker: Support Header properties (7fea081)
  • NumberBox: Header and HeaderTemplate support (6e14000)
  • TimePicker: Support for Header properties (5bf73e9)
  • Add Platforms folder in VSIX template (2779561)
  • MapStyle and MapInputEventArgs (a833c95)
  • Support for WinUI InfoBar control (601e9a4)
  • Tizen project template (6d46e18)

BREAKING CHANGES

  • Using the MapControl implementation provided by Uno.UI.Maps requires the MapResources resource dictionary to be included in application resources:
<Application.Resources>
	<MapResources xmlns="using:Uno.UI.Maps"/>
</Application.Resources>

This resource dictionary provides the required MapControl style.

  • android: The support for Android 9 is being removed, as the Play Store does not accept updates for applications using this version.

Performance Improvements

  • fastconvert: Replace the switch by a calculation for 1-digit string conversion. (87832b0)
  • tests: Improved perf of UI tests by reducing multiple decoding of same images (c0c391b)

Bug Fixes

  • auto_size: Add support for "Auto" and "Infinity" in float & double converter for DependencyProperty bindings. (58bd5f5)
  • combobox: Set alignment on ComboBox PopupBorder (71ec888)
  • dotnetnew: Adjust templates content for VS integration (55a41ff)
  • elevatedview: UpdateElevation timing issue (df3b6e5)
  • keyboard: [Gtk] Add missing operators mapping (5a08089)
  • listview: [iOS] Fix outer ElementName bindings not available on reload (4cf28e4)
  • listview: [WASM] [Skia] [macOS] Improve ListView measurement (b0b2733)
  • mapcontrol: [iOS] [Android] Fix MapControl for Uno 3.0 (60792e4)
  • maps: [Android] Update Uno.UI.Maps to latest Google Play Services package (0fa1833)
  • Adjust visibility of Skia extensions (3d625cd)
  • Textblock can be constrained by maxlines on wasm and android (0c33868)
  • textblock: Fixed Android measure bug #4414 (11ddb61)
  • XamlFileGenerator: XAML markup extension requires full name #2918 (488a556)
  • BindingExpression failed to apply string explicit source. (94b6bc9)
  • UIElementCollection adding the view twice (52fa4e5)
  • fix(mapcontrol)!: Using MapControl now requires including MapResources (373bf93)
  • generation: Fixes invalid Tuples expansion using Roslyn 3.5 and later (c7bebb2)

Don't miss a new uno release

NewReleases is sending notifications on new releases.