Skip to content

Releases: unoplatform/uno

Uno Platform 3.0

12 Aug 22:13
0a2692c
Compare
Choose a tag to compare

Here's the amazing Uno 3.0 release, again packed with features, bug fixes and performance improvements.

This release is also the first in a long time to introduce binary breaking changes, yet with minimal behavior and code breaking changes. Rebuilding your application using Uno.UI 3.0 will generally be enough, with a few adjustments to the configuration. You can visit the documentation for more information.

Among the major features:

  • Acrylic Brush support for iOS, Android, macOS and WebAssembly
  • Many ScrollViewer improvements, such as XAML ScrollBar
  • Themeing support, with ResourceDictionary and implict styles updates
  • Fluent Styles from WinUI 3.0
  • DisplayInformation support for DPI and orientation changes
  • The inclusion of WinUI 3.0 API set support (Preview 2)
  • macOS support updates (Shapes, Keyboard, MediaPlayer, ...)
  • MidiInPort support (iOS, Android, WebAssembly)
  • MSAL.NET support for WebAssembly
  • WinUI ProgressBar (based on AnimatedVisualPlayer), SplitButton
  • x:Bind support for events
  • FileIO updates to support Buffer, DataReader, DataWriter
  • Clipboard reading and writing updates (iOS, Android, macOS, WebAssembly)
  • Support for CustomXamlResourceLoader and CustomResource
  • Support for NetworkInformation and status

We've also improved the performance of the DependencyObject and DependencyProperty classes, making it faster for code accessing dependency properties by their C# accessor through caching and O(1) property access.

You'll also notice below a large set of changes related to the addition of the Skia backend, which are to be released in preview for Uno.UI 3.1 as we add new features. The changes for the support of Skia largely impacted the support for WebAssembly, making it a good choice to include in Uno 3.1 and avoid including breaking changes. These changes include the introduction of the Uno.UI.WebAssembly package that needs to be added to the head WebAssembly project. For more information visit the documentation.

On the breaking changes front, for which most of the code will not be affected:

  • On iOS/Android/macOS, ee aligned the APIs that Uno used to incorrectly type as native views, particularly with UIElementCollection and Panel.Children. Some elements such as Image are now getting the appropriate base class.
  • UIElement now no longer provides a implementation of INotifyPropertyChanged
  • We removed the support for the deprecated Android 8.0. Make sure to upgrade to Android 10.0.
  • If you have an existing Uno 2.4 or ealier application, make sure too adjust the Application constructor to include the new () => new App() lambda
  • Many other binary breaking changes that require the rebuilding of the libraries that depend on Uno.UI.

Have fun with Uno 3.0!


Features

  • [Skia] Add CrossRuntime library support a6c9824
  • Add Skia (Gtk/Wpf) unoapp heads in dotnet new 74d2518
  • AcrylicBrush: First Android version 4a291e7
  • AcrylicBrush: First iOS implementation 98ebcb4
  • AcrylicBrush: First macOS implementation 17ea8a5
  • AcrylicBrush: First WASM implementation 4dd994f
  • dispatcherQueueTimer: Add support of the IsReapeting property 556e4ae
  • FileIO: WriteTextAsync and AppendTextAsync fcee9b7
  • macos: [MacOS] Add clipping support 1c8a0ad
  • pointers: [Skia] Add support for key modifiers and improve support of horizontal scrolling (including shift+wheel) 5b9bc79
  • scrollViewer: [Skia] Add support for SV.ChangeView (and scroll bars!) d79c9fd
  • scrollViewer: Add style that uses the native scrollbars fcdc215
  • scrollViewer: Add support of managed ScrollBar in ScrollViewer efcc30f
  • scrolViewer: Implement SV vsiual states (used to render managed scroll bars) 6fe45f1
  • skiawpf: Added required extensions for Skia.Wpf with naive implementations 5f6a4b5
  • skiawpf: Added support for command-line arguments cafc618
  • skiawpf: Added support for FontWeight, FontStyle & FontStretch. Works only with Font Families, not when specifying font file directly. 03698ab
  • skiawpf: Added support for Full Screen mode 64adca7
  • skiawpf: Added support for Horizontal Mouse Wheel 108aedd
  • skiawpf: Added support for pointers - first working version. 9801c51
  • skiawpf: Added support for Window Title ea5e7f8
  • styles: Add XamlControlsResources, add compact resources ecb1868
  • styles: Import Fluent styles from WinUI 16639c9
  • theme: Limited support for FrameworkElement.RequestedTheme b543db1
  • wasm: add the FileSavePicker which caches a file in the browser and downloads it when modifications are done. 5c19363
  • wasm: Added GetHtmlAttribute for an Element on Wasm. 92b0489
  • wasm: BitmapImage now supports scale qualifiers b14ee4d
  • [Skia] Add scaled images support 9117af9
  • [Skia] Add support for UIElement.TransformToVisual 8403fc2
  • Add codespaces support 235a3d4
  • [Wasm][Skia] Add icon and title support from package.appxmanifest dc4e7ee
  • IOS TimePicker flyout styling f4d7bbb
  • IsApiContractPresent detects Uno.WinUI package b383c42
  • Update WASM Path on changes d06cb5b
  • Various skia updates d7dd9ce
  • TextBlock: Added TextBlock MaxLines implementation for WASM 94a3650
  • [Skia] Load fonts from local path feaec98
  • Add cross-runtime library support for dotnet new 605d9a6
  • color: Applying a value to a SolidColorBrush in a style now works well as on UWP. 8c5213d
  • Add support base for Skia on .NET Core dbf8aa8
  • Add support for msbuild UnoRuntimeProjectReference da90b3f
  • coloranimation: First implementation of ColorAnimationUsingKeyFrames 0091a9f
  • DisplayInformation: Android OrientationChanged and DpiChanged 76dd0cf
  • DisplayInformation: iOS OrientationChanged and DpiChanged 98fef86
  • DisplayInformation: macOS OrientationChanged and DpiChanged events 06be6fc
  • DisplayInformation: WASM DpiChanged and OrientationChanged 819dfd1
  • DisplayRequest: WASM support 91d3300
  • frameworkelement: Add VisualTreeHelper.AdaptNative()/TryAdaptNative() 9bdc1a4
  • Launcher: Launch file/folder on macOS 81bd3ac
  • macOS: Window resize, min size, size changed be6f1ad
  • progressbar: Added display of CurrentState name in sample. 3f6f1f8
  • textblock: [WASM] Added support for IsTextSelectionEnabled on TextBlock. 8ad9560
  • wasm: Add new methods to set and unset CSS classes on a HTML element. 7bac999
  • wasm: Added javascript helpers for Wasm, to allow interop with javascript after the new packaging system. b1d11d0
  • Update to WinUI 3.0.0-preview2.200713.0 b449e53
  • elevatedview: Added support for macOS df31c10
  • elevatedview: ElevatedView on Android now supports setting the shadow color. 0275d09
  • (macOS) Add support for Shape Line a61e5a9
  • (macOS) Add support for Shape QuadCurve f87f659
  • (macOS) Add support for Shapes Path d480964
  • Add support for INPC(String.Empty) to notify all object's properties 308eb77
  • Add support for TextBlock.Foreground update on SolidColorBrush.Color changes a584e60
  • animation: Implemented FadeInThemeAnimation + FadeOutThemeAnimation. 9d3da6e
  • converter: Added CornerRadiusFilterConvert & CornerRadiusToThicknessConverter 3427e7a
  • converter: Added XAML convertion from SolidColorBrush to Color. da8eb9f
  • imageBrush: [Android] Add support for WriteableBitmap 8975be0
  • imageBrush: [iOS][macOS] Add support of WriteableBitmap 08716bb
  • imageBrush: [WASM] Add support of the ImageBrush 7af4d1e
  • listview: [WASM] [MACOS] ListView observable collection support a181d40
  • msal: Added new Uno.UI.MSAL add-in project file into solution. eb651fa
  • msal: Added support for MSAL in SampleApps of all platforms 7418302
  • progressbar: Added WinUI 2.3 ProgressBar first implementation. 195af14
  • progressbar: use WinUI template c4a3ba6
  • Add Uno.UI package to UWP in templates 377612d
  • Add x:Bind support for events 2b81c0e, closes #3172
  • Adds the Dopes performance test ff61bc2
  • Adjust for WinUI 3.0 Preview 1 bits 91b1576
  • Buffer d418611
  • DataReader d756b36
  • DependencyProperty read/write benchmark 141aa4d
  • msal: Added a sample for MSAL+Graph 4ce9339
  • Application.Exit on macOS cce79db
  • ElevatedView implementation for Uwp 743dbec
  • Set UnoSkipUserControlsInVisualTree to false by default 481f20c, closes #61
  • Support CloseRequested and Suspending on macOS facc0a2
  • Theme Asset Qualifier on Android bd6c619
  • Upgrade UWPSyncGenerator to Roslyn 3.6.0 3a8f8b9
  • Clipboard: ContentChanged on macOS 41de59f
  • Clipboard: GetContent on iOS b83d7d2
  • Clipboard: iOS Flush, Clear and ContentChanged 73d1213
  • Clipboard: macOS support for Clear and Flush 2e6932b
  • Clipboard: Support Clear, Flush, ContentChanged on Android ec6088e
  • Clipboard: Support Flush, Clear, ContentChanged on WASM 920304e
  • Clipboard: Support GetContent on WASM b4ba967
  • Clipboard: Support storing multiple data items on Android 482b0dd
  • easing: Implemented Circle easing functions 82ab08e
  • ios: customizable MenuFlyout cancel text 36ba934
  • MenyFlyout: Add support for ToggleMenuFlyoutItem 7542b0a
  • MIDI: Support for MidiInPort on WASM 00b5159
  • MIDI: Support MidiInPort on Android 5995708
  • MIDI: Support MidiInPort on iOS b26e069
  • styles: [Android] [iOS] Allow MessageDialog.ShowAsync() from background 43a2189
  • styles: Allow native style usage to be overridden per control b0f8f86
  • styles: Implement 'xaml scope' resource resolution b0376de
  • styles: Populate Resources from XAML bd3539c
  • styles: Populate ThemeDictionaries defined in XAML 18240f7
  • styles: ResourceDictionary - support ...
Read more

2.4.0

15 May 18:18
900f7dd
Compare
Choose a tag to compare

This exciting new release is all about enabling development on macOS and making apps for macOS!

We've been working on this for a while now, and with the help of contributors (thanks @MartinZikmund!), we're now announcing the preview of Uno's macOS support.

To validate that our macOS support is taking shape, we ported over the Uno Calculator over, and it's now available on the mac App Store.

There are lots to do to get to the full potential of macOS through Uno's abstractions, yet it will allow you to start developing for macOS.

To create a new application with Uno in Visual Studio for mac:

  • Open a terminal

  • Type the following to install the Uno templates:
    dotnet new -i Uno.ProjectTemplates.Dotnet::2.4

  • Type the following to create a new project:
    dotnet new unoapp -n MyUnoApp

  • Open the project in Visual Studio

To build for each platform:

  • For macOS:

    • Right click on the macOS project, then Set as startup
    • If “My Mac” is not selected in the top bar, make sure to select “Debug | iPhone Simulator” in the selector
  • For iOS:

    • Right click on the iOS project, then Set as startup
    • In the configuration selector, instead of Debug, select Debug | iPhoneSimulator
  • For Android:

    • Right click on the Android project, then Set as startup
    • If your android device or simulator does not appear in the list, use the Debug configuration.

MacOS Implementation Details

The implementation of the macOS support is Uno is heavily based on the iOS support. The reason for this is UIKit for iOS being very close to AppKit on macOS. This allowed us to reuse large portions of the code from iOS and adjust to fit macOS’s behavior.

Yet, there are some very subtle differences in the implementation though, where methods such as UIKit.SizeThatFits() or UIKit.SetNeedsLayout() are either absent or behaving very differently. That may be why you’ll notice parts that need so fit and finish and we encourage you to open issues on our GitHub repo.
You may ask why we did not choose to go the Catalyst route, and you’d be right. The main reason is the lack of support for Catalyst from Xamarin, and if you want to chime in this issue if this is of interest to you.

At this time, and contrary to what’s available for iOS, debugging and deploying a macOS app must be done through Visual Studio for mac, while only building is possible in Visual Studio 2019 for Windows. This feature is missing from the Xamarin tooling, and if you want that support to be added, you can vote on this issue on the Visual Studio Community site.

Features

  • macOS: Add support for Localization (a77611c)
  • macOS: Enable macOS template from VSIX (bd6fbce)

Bug Fixes

  • dotnet_new: Adjust default active projects in VS for mac (ec2de29)
  • dotnet_new: Fix project guids duplicates causing issues in VS4mac (1ef6b78)
  • macos: Missing mac platform for Uno.UI.RemoteControl (1d57cc2)
  • xbind: Possible invalid type cast in two-way mode (b952235)
  • xbind: Fix static member access in DataTemplate (d3c70c3)

2.3.2

12 May 22:53
1917962
Compare
Choose a tag to compare

This release focuses on adding the support for Android10 and AndroidX, WinUI's RadialGradientBrush and ProgressRing, Prism Library, and a number of bug fixes that you can see in the change log below.

Using the API level 29 allowed us to review our TextBlock implementation for Android and replace some reflection code required to access hidden APIs for MaxLines by official APIs that are now available. While being safer going forward, this approach also provides performance gains for this crucial control.

As the Google Play store won’t accept applications built for Android 8 (SDK 27) since November 2019, we’re removing support for that SDK to simplify our codebase and devops pipelines. To use Uno 2.3 or higher, your application needs to target Android SDK 28 (android 9) or 29 (Android 10).
If your application makes explicit use of support libraries, you’ll need to update those to Android X, and there’s some good documentation for it. Shout out to the Xamarin team, their migration tooling worked really well.

Among other notable changes:

The Uno.Wasm.Bootstrapper 1.2 has been released and removes the unfriendly use of “DotNetCliToolReference” that could not be updated via the Visual Studio interface. It includes all the recent improvements such as Windows AOT, Visual Studio 16.6 debugging, .NET interpreter performance improvements, macOS and Linux support, and Visual Studio Code support.

To upgrade from previous versions of the bootstrapper:

  • If you had a <DotNetCliToolReference … /> line in your csproj file, remove it
  • Add a nuget reference to the Uno.Wasm.Bootstrap.DevServer using the Nuget Package manager

Features

  • Add support for Android10 and AndroidX 7b05b51
  • focus: Add support for FindFirstFocusableElement 66c514b
  • focus: Add support for FindLastFocusableElement 2049304
  • gradient: [Wasm] Added support for gradient text 92aa150
  • gradient: Added FallbackColorWithOpacity. d834088
  • gradient: Added Radial Gradient for Android 171f9e4
  • gradient: first working implementation of RadialGradient on WASM fe5d86c
  • gradient: RadialGradientBrush for iOS be6d8af
  • lottie: [Android] Added Progress, IsPlaying & Duration 179c2cc
  • lottie: Allow loading of Lottie files from embedded resources. a211406
  • progressring: First implementation of WinUI 2.4 ProgressRing. 00df9d8
  • progressring: Transposed C++ code from WinUI 06621fd
  • Added NotImplemented Attribute for TopAppBar and BottomAppBar ccfa190
  • Update feature availability for the other platforms fc06be3
  • lottie: [iOS] Added support for Progress, IsPlaying & Duration 9e11da1
  • lottie: [Wasm] Added Progress, IsPlaying and Duration c0887fb
  • Xml: Implemented Windows.Data.Xml.Dom APIs 6f901e1
  • Add support for Prism library dotnet new template 18cccbb
  • Removed conditional compilation for NotImplemented attributes 6362cfb
  • Support WebView.DocumentTitle on macOS 0f54709
  • (macOS) Add CurrentOrientation support 1d0a89a
  • (macOS) Add default NativeOrientation dfd6cea
  • (macOS) Add default property state to the Style a52d326
  • (macOS) Add delegate for PasswordBox 7eee1ef
  • (macOS) Add IsPasswordRevealButtonEnabled for PasswordBox b249253
  • (macOS) Add SecureTextBox for PasswordBox 7e826cb
  • (macOS) Update PasswordBox implementation a087a21
  • cursor: Support PointerCursor on macOS 057f6bd
  • gradient: Added macOS support for RadialGradientBrush 3c93e6e
  • PackageId: macOS support 062ea5d
  • Support ComboBox on macOS 3ede85c

BREAKING CHANGES

  • All targets are now using the AndroidX support libraries. If your
    application uses explicit references to support libraries, you'll to upgrade
    those as well.

Uno upgraded from:
- Xamarin.Android.Support.v4
- Xamarin.Android.Support.v7.AppCompat
- Xamarin.Android.Support.v7.RecyclerView

To :
- Xamarin.AndroidX.Legacy.Support.V4
- Xamarin.AndroidX.AppCompat
- Xamarin.AndroidX.RecyclerView
- Xamarin.AndroidX.Fragment

Bug Fixes

  • [MacOS] Fix event handler not invoked in the sample app 9bbfa1a
  • Fix support for TextBlock under Android 10 fdc7327, closes #2016
  • android: Uno template for Android now reacts to all ConfigurationChanges 859da96
  • android: various issues with readonly textblock 2dd4bc8
  • android_geolocator: Request and validate permissions ed0d4e3
  • animation: [iOS] Fix InvalidCastException when app resumes while animation is active 32dba9c
  • commandbar: [iOS] Update CommandBar layout when Visibility changes fc18909
  • dotnet_new: Fix automated uno packages version update during CI 87d0798
  • dotnet_new: Update the publisher format 79f41dc
  • flyout: Fix NRE from trying to close uncreated Popup in Flyout 18f0191
  • gradient: Apply Log().IsEnabled for logging in generated code. f383dc6
  • gradient: Fixed default values for Radius & Origin on RadialGradientBrush. d2d60a7
  • gradient: LinearGradientBrush now derives from GradientBrush. ae1a6ad
  • gradient: Removed [NotImplemented] on BrushMappingMode. 7f3c53c
  • lottie: Fixed missing dependencies in NuGet package. 8d4012f
  • lottie: improve assembly scanning. 326251e
  • lottie: Updated Lottie-web to from 5.4.4 to 5.6.8 c49db32
  • macos: Adjust default dotnet new sln configurations 76170a6
  • mediaplayer: [iOS] Fix exception from MediaPlayerPresenter returning infinite desired height 3fd116d
  • mediaplayer: Arranges the player even if the video ratio is of 0 as this will lead to a real video ratio. 0ac5e31
  • mediaplayer: Fix invalid stop of the player when toggling the fullscreen mode. efe2e89
  • mediaplayer: NRE when the surface is destroyed but the player has already been released. e29a537
  • mediaplayer: Resets the MediaPlayer and its surface when setting its source to null. 70b79e8
  • pointers: [iOS] Try to re-use pointer ID in order to detect DoubleTap 44df20e
  • progressring: Fixed bug on Wasm where ProgressRing was stuck. c9d0ea0
  • shapes: [WASM] StrokeDashArray is not published to native element 48b971f
  • solidcolorbrush: [ANDROID][WASM] Color brushes added to Thumbtint, TrackTint, Fill, and Stroke missing opacity ff059c3
  • xBind: Fix x:Bind parsing when ignorable directive is not present d17bd91
  • (macOS) rename file name to match with class 9698914
  • Add changes to packagediff ignore file 3f34de8
  • Adjust screenshot comparer with missing ZipFile dependency 471a65d
  • Adjust Uno.UI and Uno.UI.RemoteControl references in macOS template e6ba3da
  • Adjust WebAssembly detection after a breaking change in RuntimeInformation bd00e78
  • build error on CI 6fffaa8
  • ci build - make field readonly c1c5eb3
  • Fix http: samples working on macOS c0217b5
  • Fix incorrect XAML parsing of x:Bind with ConverterParameter abb43f9, closes #3049
  • Fix the wasmxfhead template creation was using blank uno app f5fe5e6
  • Improve NativeFramePresenter.iOS implementation to fix concurrency issues. 7985a91
  • property signature 9eca43a
  • Remove explicit DependentUpon from BlankPage.vstemplate 6ed24a5
  • popup: Update position when VerticalOffset changes 239cc2f
  • RemoteControl: Make Wasm WebSockets dependency conditional to netstandard 2.0 c112690
  • template: Adjust default organization for UWP dotnet new app template ff5171b
  • tooltip: Place tooltip relative to mouse pointer f63617f
  • tooltip: Support views as direct TooltipService.ToolTip content 19482e8
  • Fixes symbol icon Home not shown bde78f1
  • Remove the sealed attribute from generated code (#2830) 2e80728, closes #2830
  • Updated UWP Samples app signing certificate 4180cc6

2.2

21 Apr 18:35
26bc8a6
Compare
Choose a tag to compare
2.2

The Uno 2.2 release is packed with new features, performance improvements and bug fixes, even if it's closely following the 2.1 release!

We're also hard at work on adding support for macOS apps (Thanks @MartinZikmund), and while we still do not have anything to announce, it's taking shape!

Among the implemented features, you'll find:

  • Support for MenuFlyout, UIElement.ContextFlyout and MenuBar
  • Support for ScrollBar
  • Add support for dotnet new unoapp and macOS templates
  • Support for Electron hosted apps
  • ImageSource.SetSourceAsync support for WebAssembly (Thanks @SuperJMN)
  • Support for ColorAnimation
  • Support for Pedometer for iOS and Android (Thanks @MartinZikmund)
  • Suppport for mouse wheel events (PointerWheelChanged) on WebAssembly
  • Support for DropDownButton from WinUI 2 (Thanks @MartinZikmund)
  • Many performance and memory updates impacting all platforms at various levels, such as giving a rough 20% improvement on controls creation on WebAssembly. A more detailed post will follow soon on that topic.
  • Support for ms-appdata paths in Image, MediaPlayer (Thanks @MartinZikmund)

Uno is now built using C# 8.0 and VS 16.5 on Azure Devops hosted agents, which means that AndroidX and Android 10 support is close by.

And finally, many of the recent updates were targeted at improving the behavior of controls in the Windows Community Toolkit, with enabling DataGrid, TabView and Expander controls. On the topic of the DataGrid, there's still lots of work to be done, particularly around performance under WebAssembly, but this release updates now make the control useable.

Features

  • [WASM] Added the ability to load images from bytes (9cfb29f)
  • Add benchmark filter (1335d7b)
  • Add MenuFlyout support (4fc3cb1)
  • Add support for dotnet new unoapp and macOS templates (a591d69)
  • Add support for UIElement.ContextFlyout (5640745)
  • focus: Raise Control.GotFocus asynchronously (21d7758)
  • add support for Electron. (a56a7d9)
  • Add support for FindElementsInHostCoordinates (6231d0b)
  • Added support for DropDownButton from MUX (de78481)
  • ARM64 support for UWP in solution template (39230e7)
  • animation: [WASM] Add fast-path for zero-duration animations (19ec739)
  • animation: Implement ColorAnimation for iOS, Android, and WebAssembly (4b6ff56)
  • animation: Support independently animating SolidColorBrush from shared resource (f6b3ce8)
  • commandbar: Add support for native CommandBar.HorizontalContentAlignment on Android. (5e6ca82)
  • focus: [WASM] Update FocusManager when browser window loses focus (3a61248)
  • pointer: [WASM] Enable support of the PointerWheelChanged event (2a0d9fb)
  • pointers: [WASM] Add support for the mouse wheel event (57ccc39)
  • pointers: Wire-up the pointer wheel event (805e527)
  • Using Uno blue accent color for WASM splash (cf4d56b)
  • scrollbar: Add support for ScrollBar (9eadb8e)
  • Async initialization of Pedometer (0e306c9)
  • DatePicker now shows picker with today selected if no date is set (deef3dc)
  • Implement the Thumb.Start horizontal and vertical offsets (9246668)
  • Implemented AppDataUriEvaluator (a6f5d43)
  • Implemented DropDownButtonAutomationPeer (a057ef8)
  • Implemented pedometer on Android (cdf2cc6)
  • Implemented Pedometer on iOS (617dd49)
  • Remove monoandroid80 (1778a75)
  • Remove the dependency on System.Xaml for .NET Core compatibility (9d8674a)
  • Support for Frame.IsNavigationStackEnabled (d268db9)
  • Support Lottie animations on iOS (17df575)
  • wasm: Add CoreDispatcher support for threading (53304d5)
  • WebView: Add DocumentTitle for Android and iOS (21ae5b2)
  • Support of DataTransfer.DataPackage.RequestedOperation (a6a1479)
  • Use C# 8.0 by default (9431fc9)
  • Using ms-appdata paths in Image, MediaPlayer (42ecf36)
  • (macOS) Add #2844 support for Image (c0d16ea)
  • (macOS) Add image Asset in Sample proj (1f465a4)
  • (macOS) Add Support for DisplayInformation (fa52844)
  • (macOS) Support for XAML HotReload on the SampleApp (6387d57)
  • [macOS] Add support for TextBox (8c99072)
  • [macOS] ScrollViewer - show scroll bar (47dfe8a)
  • [macOS] Show full samples list (f080e87)
  • [macOS] Update properties on scroll (99ad526)
  • Add support for Lottie on macOS (1b8c6e5)
  • Added DoubleAnimation, DoubleAnimationUsingKeyFrames on macOS (3eea4b2)
  • DisplayRequest: macOS support (80ce63e)
  • ListView - allow WASM/macOS implementation to be tested on iOS/Android (c22a951)
  • Share WASM ListView implementation with macOS (1c3541b)
  • Support playback rate on iOS/macOS (f21f458)

BREAKING CHANGES

  • The Uno.Xaml parser is now always used

    The System.Xaml assembly is not always available, particularly when building under .NET Core.

  • The monoandroid80 target is not available anymore.

    It has been deprecated by Google.

  • Uno is now built using VS2019 16.4

    It does not support building Xamarin iOS/Android applications with Visual Studio 2017.

    Linker errors may occur such as:

    Java.Interop.Tools.Diagnostics.XamarinAndroidException: error XA2006: Could not resolve reference to 'System.Collections.Generic.Queue`1'
    (defined in assembly 'Uno.UI, Version=255.255.255.255, Culture=neutral, PublicKeyToken=null') with scope 'mscorlib, Version=2.0.5.0,
    Culture=neutral, PublicKeyToken=7cec85d7bea7798e'.
    
  • commandbar: Alignment of native CommandBar.Content used to be Stretch/Stretch and is now aligned with Top/Left on UWP.

    Use `CommandBar.Horizonta...

Read more

2.1

07 Apr 11:32
2f98f00
Compare
Choose a tag to compare
2.1

Uno Platform 2.1 release is packed with over 50 new features allowing for increased productivity as well as getting you up and running with Surface Duo. In addition to bigger milestones such as x:Bind, the TwoPaneView and NumberBox controls we also shipped another 50 new features and closed 45 issues you raised.

Among many other updates:

  • Support for x:Bind functions (with BindBack, DefaultBindingMode)
  • Support for the Surface Duo has been added and the TwoPaneView control
  • Support for the WinUI 2.3 NumberBox control
  • ElevatedView in the toolkit to add shadows around controls
  • Support for Grid.ColumnSpacing and Grid.RowSpacing
  • Multitouch pointers support
  • Support for UIElement.RightTapped and Holding

You'll also notice some progress on the macOS support, but nothing concrete to share at this point.

Big thank you to all our contributors for the support !

Here's the full change log:

Features

  • Added new ElevatedView in the Uno.Toolkit to provide elevation & rounded corners on all platforms
    (not supported on Windows yet, because Uno needs to target framework 10.0.18362.0)
  • [Android] Support for Application.Current.Exit
  • Support for Windows.Storage.FileProperties.BasicProperties.DateModified
  • Added CornerRadius support to more default styles to match UWP (for list of updated styles see PR [#2713])
  • Support for FontIcon on macOS
  • Support for PhoneCallManager.ShowPhoneCallUI on macOS
  • Support for full screen mode on macOS
  • Support for ShowComposeSmsMessageAsync on macOS
  • Support for Flyout on macOS
  • Support for HingeAngleSensor for Surface Duo
  • Support for Geolocator on macOS
  • Support for Clipboard get/set Text content on macOS
  • Support for ApplicationView.Title on Android and macOS
  • Support for AnalyticsInfo on macOS
  • Support for TryEnterFullScreenMode and ExitFullScreenMode on WebAssembly
  • Support for MessageDialog on macOS
  • [Android] support of KnownFolders.MusicLibrary and VideosLibrary
  • Add support for StorageFile.DateCreated
  • Support for ApplicationView.IsScreenCaptureEnabled on Android
  • Add support for StorageFile.DeleteAsync()
  • Support for PointerDown, PointerUp PointerEntered, PointerExited and PointerMoved events on macOS
  • Support for Launcher API on macOS, support for special URIs
  • Support for EmailManager.ShowComposeNewEmailAsync
  • Add support for StorageFolder.CreateFileAsync(string path)
  • Add support for ApplicationViewTitleBar.BackgroundColor on WASM
  • Add support for Automation SetDependencyPropertyValue in Uno.UITest
  • Added support for using a string value in a StaticResource when using `CreateFromStringAttribute'
  • [Android] Adds support for FeatureConfiguration.ScrollViewer.AndroidScrollbarFadeDelay
  • Add support for Grid.ColumnSpacing and Grid.RowSpacing
  • Add clarification in documentation for adding automated UI tests
  • Add support for Popup.LightDismissOverlayMode, as well as DatePicker.LightDismissOverlayMode and Flyout.LightDismissOverlayMode. To modify the background color of the Overlay see Popup.md, DatePicker.md, TimePicker.md and Flyout.md
  • TransformToVisual now returns a real transform to convert coordinates between views (was only returning a translate transform to offset the origin of controls)
  • Multiple pointers at same time on screen (a.k.a. Multi-touch) are now supported
  • Add support for WinUI 2.3 NumberBox
  • Add support of the UIElement.RightTapped event (The context menu won't appear anymore on WASM, except for the TextBox)
  • Add support of the UIElement.Holding event
  • [MacOS] Support for ScrollViewer
  • [MacOS] Support for LinearGradientBrush
  • Add support for TwoPaneView control.
  • Add support for ApplicationView.GetSpanningRects
  • Add base support for API Extensibility through Uno.Foundation.Extensibility.ApiExtensibility and ApiExtensionAttribute
  • Add support for Surface Duo through the Uno.UI.DualScreen package
  • Add support for enums in x:Bind functions and BindBack
  • Add XamlReader support for Primitive static resources
  • [Android] Add support for non-native Popup by default. Can be enabled through FeatureConfiguration.Popup.UseNativePopup set to false (See #2533 for more details)
  • Add template tags for the VS2019 VSIX template search experience
  • [iOS] #2746 Fix border thickness when a corner radius is set
  • [Android] #2762 ProgressRing wasn't displaying inside a StackPanel
  • #2797 Stack overflow in ListView when changing SelectedItem to and from invalid value
  • [Android] #2761 Control with AreDimensionsConstrained and Margin set not measured correctly

Breaking changes

Bug fixes

  • [iOS] Applying a <RenderTransform> on an image was producing an incorrect layout result.
  • Add support for CornerRadius in default ComboBox style
  • Fix for samples app compilation for macOS
  • [#2465] Raising macOS Button Click event
  • [#2506] DesignMode.DesignMode2Enabled no longer throws (is always false on non-UWP platforms)
  • [#915] FontFamily values are now properly parsed on WebAssembly, updated docs with new info
  • [#2213] Fixed ApplicationData on MacOS, added support for LocalSettings
  • Made macOS Samples app skeleton runnable (temporarily removed ApplicationData check on startup, fixed reference), added xamarinmacos20 to crosstargeting_override sample
  • [#2230] DisplayInformation leaks memory
  • [WASM] Shapes now update when their Fill brush's Color changes
  • [WASM] Fix bug where changing IsEnabled from false to true on Control inside another Control didn't work
  • [Wasm] Add arbitrary delay in Safari macOS to avoid StackOverflow issues
  • #2227 fixed Color & SolidColorBrush literal values generation
  • [Android] Fix bug where setting Canvas.ZIndex would apply shadow effect in some cases
  • #2287 Vertical ListView containing a horizontal ScrollViewer: horizontal scrolling is difficult, only works when the gesture is perfectly horizontal
  • #2130 Grid - fix invalid measure when total star size is 0
  • [iOS] Fix invalid image measure on constrained images with Margin
  • [#2364] fixed missing Xaml IntelliSense on newly created project
  • ViewBox no longer alters its child's RenderTransform
  • [#2033] Add Missing LostFocus Value to UpdateSourceTrigger Enum
  • [Android] Fix Image margin calculation on fixed size
  • [Android] Native views weren't clipped correctly
  • [Android] Border thickness was incorrect when CornerRadius was set
  • [iOS] #2361 ListView would measure children with infinite width
  • [iOS] Fix crash when using ComboBox template with native Picker and changing ItemsSource to null after SelectedItem was set
  • [#2398] Fully qualify the MethodName value for `CreateFromStringAttribute' if it's not fully qualified it the code
  • [WASM] Fix bug where changing a property could remove the required clipping on a view
  • #2294 Fix TextBox text binding is updated by simply unfocusing
  • [Android] Fix unconstrained Image loading issue when contained in a ContentControl template
  • Enable partial NavigationView.ItemSource scenario (#2477)
  • [Wasm] Fail gracefully if IDBFS is not enabled in emscripten
  • [#2513] Fix TransformGroup not working
  • [#1956] Fis iOS invalid final state when switching visual state before current state's animation is completed.
  • Fix Selector support for IsSelected (#1606)
  • [Android] 164249 fixed TextBox.Text flickering when using custom IInputFilter with MaxLength set
  • [MacOS] Fix exceptions when modifying UIElementCollection, layouting view with null Layer
  • Fix invalid conversion when using ThemeResource (e.g. Color resource to Brush property)
  • Fix XamlBindingHelper.Convert double to GridLength
  • [Android] Adjust TextBlock.TextDecorations is not updating properly
  • Adjust XamlBindingHelper for GridLength and TimeSpan
  • Add missing ListView resources
  • #2570 [Android/iOS] fixed ObjectDisposedException in BindingPath
  • #2107 [iOS] fixed ContentDialog doesn't block touch for background elements
  • #2108 [iOS/Android] fixed ContentDialog background doesn't change
  • #2680 [Wasm] Fix ComboBox should not stretch to the full window width

2.0.528

20 Dec 19:13
60d3e51
Compare
Choose a tag to compare

This release is bits that were announced at UnoConf in September, and it's a big one! It contains lots of new features, improvements, and bug fixes.

This release is now a community effort, thanks to Hacktoberfest, an also to community contributors such as @MartinZikmund, @pkar70, @kakone, @pdecostervgls, @gevart and all the Uno Team people!

Note: To install the latest Visual Studio Extension to use XAML Hot Reload, you'll need to do it from the release files below for the next few days, as the release there is still 1.45. We're discussing publication issues with the Microsoft VS Marketplace team about that, we'll update the release notes accordingly. The VSIX is now updated in the marketplace!

XAML Hot Reload for iOS, Android and WebAssembly

XAML Hot Reload is now supported, giving ability to design the UI of a running application directly from Visual Studio. Best of all, it can update multiple platforms at once!

Head to this guide to get started.

Dark mode support

ThemeResources support to enable Dark Theme has been included, with automatic detection on iOS, Android and WebAssembly. It's not yet supporting live update from one theme to another, but this is coming soon!

You can view the results of this support in the Uno Calculator (WebAssembly, App Store and Play Store), in the Xaml Controls Gallery WebAssembly App, and the Windows Communit Toolkit WebAssembly App.

Pointer and Manipulation events

This release adds extensive support for Pointer events and Manipulation events, paving the way for more advanced controls support such as data grids, and other interactive controls.

GitPod WebAssembly development support

GitPod enables very interesting scenarios for friction-less development with Uno, as well as contributing to Uno. Because there is nothing to install, and that everything runs in your browser, it lowers the barrier to entry for developing, as there's no step of "setting up the environment" that can take such a long time on some cases.

GitPod also enables live PR validations, with the pre-build features, allowing to test the live bits of a PR inside of a running VS Code instance, simply by clicking on the "review in GitPod" button in every PR.

Get started [here with this guide].(https://github.com/unoplatform/uno/blob/master/doc/articles/features/working-with-gitpod.md).

Visual Studio 4 Mac compatibility for iOS and Android

Building an app for iOS and Android in Visual Studio for mac is now supported, with initial support for XAML intellisense, in release 8.4.

Uno Platform WebAssembly Renderers for Xamarin.Forms

This release also enables the support for WebAssembly Renderers for Xamarin Forms 4.3.

Other additions

  • Large improvements in UIElement clipping behavior
  • Support for hardware APIs such as Windows.Devices.Lights.Lamp, Geolocator, Gyrometer, Magnetometer, Accelerometer, VibrationDevice, Barometer
  • Support for system apis JumpList, PhoneCallManager, DisplayInformation
  • PathGeometry and PolyLine support for WebAssembly
  • XAML type conversions through CreateFromStringAttribute
  • Support for ContentDialog, PersonPicture, TooltipService, ToggleButton.IsThreeState and TextBox.IsReadonly (WebAssembly)
  • VisualState setters support for static, theme resources and template bound values

Lots of work has been done to make Uno more reliable, with the inclusion of UI and on-device unit testing for iOS, Android and WebAssembly as part of the PR process. Each PR is now validated by running an extensive set of tests through the uno.uitest cross-platform UI Testing library.

This release also includes updates that enable support for ReactiveUI (samples) and VLC

Here's the full list:

Features

  • #2029 Support for MenuFlyoutItem.Click
  • support /[file]/[name] format in ResourceLoader.GetForCurrentView().GetString()
  • [#2039] Added support for Xaml type conversions using CreateFromStringAttribute.
  • [#] Support for Windows.Devices.Lights.Lamp on iOS, Android.
  • #1970 Added support for AnalyticsInfo properties on iOS, Android and WASM
  • [#1207] Implemented some PackageId properties
  • #1919 Support for PathGeometry on WASM.
  • Support for Geolocator on WASM, improvements for support on Android, iOS
  • #1813 - Added polyline support for WASM and samples for all shapes
  • #1743 - Added a change to make the MarkupExtensionReturnType optional
  • Added Dark and HighContrast theme resources, reacts to Dark/Light theme on iOS, Android and WASM automatically during the startup of the app if RequestedTheme is not set in App.xaml
  • Support for Gyrometer on Android, iOS and WASM
    • ReadingChanged
    • ReportInterval
  • Support for Launcher.QueryUriSupportAsync method on Android and iOS
  • #1493 - Implemented the Windows.Input.PointerUpdateKind Enum.
  • #1428 - Add support for horizontal progressbars to BindableProgressBar on Android.
  • Add support for Windows.Devices.Sensors.Magnetometer APIs on iOS, Android and WASM
    • ReadingChanged
    • ReportInterval
  • Add support for Windows.UI.StartScreen.JumpList APIs on Android and iOS
    • Includes Logo, DisplayName and Arguments
    • The activation proceeds through the OnLaunched method same as on UWP
  • Refactored DrawableHelper to the Uno project
  • Add full implementation of Windows.UI.Xaml.Input.InputScopeNameValue on all platforms.
  • Add support for Windows.Devices.Sensors.Accelerometer APIs on iOS, Android and WASM
    • ReadingChanged
    • Shaken
    • ReportInterval
  • Align ApplicationData.Current.LocalSettings.Add behavior with UWP for null and repeated adds
  • Add support for Windows.ApplicationModel.Calls.PhoneCallManager
  • Add support for Windows.Phone.Devices.Notification.VibrationDevice API on iOS, Android and WASM
  • Basic support for Windows.Devices.Sensors.Barometer
  • Support setting Style inline (e.g. <TextBlock><TextBlock.Style><Style TargetType="TextBlock"><Setter>...)
  • [Wasm] Add support for DisplayInformation properties LogicalDpi, ResolutionScale, ScreenWidthInRawPixels, RawPixelsPerViewPixel , and ScreenHeightInRawPixels¸
  • Permit DependencyProperty to be set reentrantly. E.g. this permits TextBox.TextChanged to modify the Text property (previously this could only be achieved using Dispatcher.RunAsync()).
  • Add support for filtered solutions development for Uno.UI contributions.
  • 132984 [Android] Notch support on Android
  • Add support for Android UI Tests in PRs for improved regression testing
  • Add static support for ThemeResources: Application.Current.RequestedTheme is supported
    • Dark and Light are supported.
    • Custom Themes are supported. This let you specify HighContrast or any other custom themes.
      (this is a feature not supported in UWP)
      // Put that somewhere during app initialization...
      Uno.UI.ApplicationHelper.RequestedCustomTheme = "MyCustomTheme";
    • FrameworkElement.RequestedTheme is ignored for now.
    • Should be set when the application is starting (before first request to a static resource).
  • Prevent possible crash with MediaPlayerElement (tentative)
  • Add support for ContentDialog, including Closing and Closed events
  • Permit DependencyProperty to be set reentrantly. E.g. this permits TextBox.TextChanging to modify the Text property (previously this could only be achieved using Dispatcher.RunAsync()).
  • Implement TextBox.TextChanging and TextBox.BeforeTextChanging. As on UWP, this allows the text to be intercepted and modified before the UI is updated. Previously on Android using the TextChanged event would lead to laggy response and dropped characters when typing rapidly; this is no longer the case with TextChanging.
  • [WASM] ComboBox's dropdown list (CarouselPanel) is now virtualized (#1012)
  • Improve Screenshot comparer tool, CI test results now contain Screenshots compare data
  • Updated Xamarin.GooglePlayServices.* packages to 60.1142.1 for Target MonoAndroid80
  • Updated Xamarin.GooglePlayServices.* packages to 71.1600.0 for Target MonoAndroid90
  • <ContentPresenter> will now - as a fallback when not set - automatically bind to
    TemplatedParent's Content when this one is a ContentControl.
    You can deactivate this behavior like this:
    FeatureConfiguration.ContentPresenter.UseImplicitContentFromTemplatedParent = false;
    
  • Add support for Selector.IsSynchronizedWithCurrentItem
  • Add support for CoreApplication.MainView and CoreApplication.Views
  • Add support for resolution of merged and theme resources from ResourceDictionary in code
  • Add non-failing StatusBar BackgroundOpacity and BackgroundColor getters
  • Relax DependencyProperty owner validation for non-FrameworkElement
  • ToolTip & ToolTipService are now implemented...
Read more

XAML Hot Reload Preview 1

19 Sep 17:21
Compare
Choose a tag to compare
Pre-release

Here's the XAML Hot Reload Preview 1 for Uno Platform!

To install this release, please read the following guide.

1.45.0

02 Aug 20:33
5da7c8f
Compare
Choose a tag to compare

Features

  • Add support for Windows.System.Display.DisplayRequest API on iOS and Android
  • Add support for the following Windows.System.Power.PowerManager APIs on iOS and Android:
    • BatteryStatus
    • EnergySaverStatus
    • PowerSupplyStatus
    • RemainingChargePercent
    • PowerSupplyStatusChanged
    • EnergySaverStatusChanged
    • RemainingChargePercentChanged
    • BatteryStatusChanged
  • Updated CheckBox glyph to match UWP style on all platforms
  • Add support for the following DisplayInformation properties on iOS and Android:
  • Add support for CurrentInputMethodLanguageTag and TrySetInputMethodLanguageTag on Android, iOS and WASM
  • Add support for ChatMessageManager.ShowComposeSmsMessageAsync (and ChatMessage Body and Recipients properties) on iOS and Android
  • Add support for the following DisplayInformation properties on iOS and Android:
    • CurrentOrientation
    • LogicalDpi
    • NativeOrientation
    • RawDpiX
    • RawDpiY
    • ResolutionScale
    • StereoEnabled
    • RawPixelsPerViewPixel
    • DiagonalSizeInInches
    • ScreenHeightInRawPixels
    • ScreenWidthInRawPixels
    • AutoRotationPreferences
  • Performance improvements
    • Use Span<T> for Grid layout
    • Optimize Wasm text measuring
    • Performance improvements in TSInteropMarshaller.InvokeJS
  • [Wasm] Improve TextBlock measure performance
  • [Wasm] Improve PivotItem template pooling
  • 150233 [Android] fixed status-bar, keyboard, nav-bar layout on android
  • Add support for Brush implicit conversion (Fixes #730)
  • Add XamlReader support for top level ResourceDictionary (#640)
  • Add support for IDictionary objects in XAM (#729)
  • Add support for Binding typed property (#731)
  • Add support for RelativeSource.Self bindings
  • 149377 Improve performance of TimePicker and DatePicker on iOS.
  • 145203 [iOS] Support ScrollViewer.ChangeView() inside TextBox
  • 150793 [iOS] Add ListView.UseCollectionAnimations flag to allow disabling native insert/delete animations
  • 150882 [iOS] Fix visual glitch when setting new RenderTransform on a view
  • [Wasm] Add support of hardware/browser back button in SystemNavigationManager.BackRequested
  • [Wasm] Added support for custom DOM events
  • WebAssembly UI tests are now integrated in the CI
  • Enable support for macOS head development
  • [Wasm] Add NativeXXX styles (which are aliases to the XamlXXX styles)
  • [Wasm] Enable persistence for all ApplicationData folders
  • [Wasm] Add Samples App UI Screenshots diffing tool with previous builds
  • Add PasswordVault on supported platfrosm
  • [Android] Updated support libraries to 28.0.0.1 for Android 9
  • Add support for x:Load
  • [Wasm] Restore support for x:Load and x:DeferLoadStrategy
  • [Wasm] Scrolling bar visibility modes are now supported on most browsers
  • Fix invalid cast exception when using x:Load or x:DeferLoadStrategy
  • Add Windows.Globalization.Calendar
  • [Wasm] Support of overlay mode of the pane
  • Using State Triggers in VisualStateManager now follows correct precedence as documented by Microsoft
  • Add support for FlyoutBase.AttachedFlyout and FlyoutBase.ShowAttachedFlyout()
  • x:Bind now supports binding to fields
  • Grid positions (Row, RowSpan, Column & ColumnSpan) are now behaving like UWP when the result overflows grid rows/columns definition
  • [Wasm] Improve TextBlock measure performance
  • [Wasm] Improve Html SetAttribute performance
  • MenuBar
    • Import of MenuBar code, not functional yet as MenuItemFlyout (Issue #801)
    • Basic support for macOS native system menus
  • Ensure FrameworkElement.LayoutUpdated is invoked on all elements being arranged
  • Fix Grid.ColumnDefinitions.Clear exception (#1006)
  • 155086 [Android] Fixed AppBarButton.Label taking precedence over AppBarButton.Content when used as PrimaryCommands.
  • ComboBox
    • Remove dependency to a "Background" template part which is unnecessary and not required on UWP
    • Make sure that the PopupPanel hides itself if collapsed (special cases as it's at the top of the Window)
    • [iOS] Add support of INotifyCollectionChanged in the Picker
    • [iOS] Remove the arbitrary null item added at the top of the Picker
    • [iOS] Fix infinite layouting cycle in the iOS picker (Removed workaround which is no longer necessary as the given method is invoked properly on each measure/arrange phases)
  • [Wasm] Refactored the way the text is measured in Wasm. Wasn't working well when a parent with a RenderTransform.
  • Grid now supports ColumnDefinition.MinWidth and MaxWidth and RowDefinition.MinHeight and MaxHeight (#1032)
  • Implement the PivotPanel measure/arrange to allow text wrapping in pivot items
  • [Wasm] Add PathIcon support
  • Add support UI Testing support through for Uno.UI.Helpers.Automation.GetDependencyPropertyValue

Breaking Changes

  • The WebAssemblyRuntime.InvokeJSUnmarshalled method with three parameters has been removed.
  • NavigationBarHelper has been removed.
  • Localized Text, Content etc is now applied even if the Text (etc) property isn't set in Xaml. Nested implicit content (eg <Button><Border>...) will be overridden by localized values if available.
  • [Android] Unless nested under SecondaryCommands, the AppBarButton.Label property will no longer be used for the title of menu item, instead use the AppBarButton.Content property. For SecondaryCommands, keep using AppBarButton.Label.
  • The WordEllipsis was removed from the TextWrapping as it's not a valid value for UWP (And it was actually supported only on WASM) (The right way to get ellipsis is with the TextTrimming.WordEllipsis)

Bug fixes

  • DatePicker FlyoutPlacement now set to Full by default
  • Semi-transparent borders no longer overlap at the corners on Android
  • The HAS_UNO define is now not defined in uap10.0.x target frameworks.
  • The XamlReader fails when a property has no getter
  • Click and Tapped events were not working property for ButtonBase on Android and iOS.
  • 146790 [Android] AndroidUseManagedLoadedUnloaded causes partial item shuffling in ListView
  • 150143 [Android] Toggling TextBox.IsReadOnly from true to false no longer breaks the cursor
  • WasmHttpHandler was broken because of a change in the internal Mono implementation.
  • 140946 [Android] Upon modifying a list, incorrect/duplicated items appear
  • 150489 [Android] PointerCanceled not called on scrolling for views with a RenderTransform set
  • 150469 [iOS] Virtualized ListView items don't always trigger their multi-select VisualStates
  • 1580172 ToggleSwitch wasn't working after an unload/reload: caused by routedevent's unregistration not working.
  • 145203 [Android] Fix overflow on LogicalToPhysicalPixels(double.MaxValue), allowing ScrollViewer.ChangeView(double.MaxValue,...) to work
  • 150679 [iOS] Fix path issue with Media Player not being able to play local files.
  • Adjust support for StaticResource.ResourceKey
  • 151081 [Android] Fix Keyboard not always dismissed when unfocusing a TextBox
  • [WASM] Support not_wasm prefix properly. (#784)
  • 151282 [iOS] Fixed Slider not responding on second navigation, fixed RemoveHandler for RoutedEvents removing all instances of handler
  • 151497 [iOS/Android] Fixed Slider not responding, by ^ RemoveHandler fix for RoutedEvents
  • 151674 [iOS] Add ability to replay a finished video from media player
  • 151524 [Android] Cleaned up Textbox for android to remove keyboard showing/dismissal inconsistencies
  • Fix invalid code generation for x:Name entries on Style in resources
  • [Wasm] Fix incorrect TextBlock measure with constrains
  • 151676 [iOS] The keyboard is closing when tap on the webview or toolbar
  • 151655 [TimePicker][iOS] First time you open time picker it initializes the existing value to current time
  • 151656 [TimePicker][iOS] Time picker always shows +1 minute than selected value
  • 151657 [DatePicker][iOS] Date picker flyout displays 1 day earlier than selected value
  • 151430 [Android] Prevent touch event being dispatched to invisible view
  • Fixed overflow errors in Grid.Row/Column and Grid.RowSpan may fail in the Grid layouter.
  • 151547 Fix animation not applied correctly within transformed hierarchy
  • Setting the .SelectedValue on a Selector now update the selection and the index
  • [WASM] Fix ListView contents not remeasuring when ItemsSource changes.
  • [WASM] Dismissable popup & flyout is closing when tapping on content.
  • 145374 [Android] fixed android keyboard stays open on AppBarButton click
  • 152504 [Android] Pointer captures weren't informing gestures of capture, fixes Slider capture issue
  • 148896 [iOS] TextBlock CarriageReturns would continue past maxlines property
  • 153594 [Android] EdgeEffect not showing up on listView that contain Headers and Footers
  • #881 [iOS] [Android] Support explicitly-defined ListViewItems in ListView.
  • #902 [Android] Resource generation now correctly escapes names starting with numbers and names containing a '-' character
  • 154390 Storyboard Completed callback were not properly called when there's not children.
  • [iOS] Fix bug where Popup can be hidden if created during initial app launch.
  • #921 Ensure localization works even if the property isn't defined in XAML
  • [WASM] Using x:Load was causing Collection was modified exception.
  • Fix support for localized attached properties.
  • Fix a potential crash during code generated from XAML, content were not properly escaped.
  • #977 Fix exception when setting MediaPlayerElement.Stretch in XAML.
  • [Android] Fix MediaPlayerElement.Stretch not applied
  • [Android] Fix for ListView elements measuring/layouting bug
  • Fix Grid.ColumnDefinitions.Clear exception (#1006)
  • [Wasm] Align Window.SizeChanged and ApplicationView.VisibleBoundsChanged ordering with UWP (#1015)
  • Add VS2019 Solution Filters for known developer tasks
  • #154969 [iOS] MediaPlayer Appl...
Read more

1.44.1

06 Jun 23:54
f4839f4
Compare
Choose a tag to compare

Release 1.44.1

Features

  • Add support for ICollectionView.CopyTo
  • Add support for ViewBox
  • Add support for AutoSuggestBox.ItemsSource
  • Add support for Selector.SelectedValuePath (e.g. useful for ComboBox)
  • Add support for JS unhandled exception logging for CoreDispatcher (support for Mixed mode troubleshooting)
  • [WASM] Improve element arrange and transform performance
  • Restore original SymbolIcon.SymbolProperty as a C# property
  • Add support for MediaPlaybackList
  • Update Uno.SourceGenerationTasks to improve build performance
    • Move to the latest Uno.SourceGenerationTasks to improve project parsing performance, and allows for the removal of unused targets caused by unoplatform/Uno.SourceGeneration#2. Uno.Xaml and Uno.UI.BindingHelpers now only build the required targets.
    • Move to net461 for test projects so the the Uno.Xaml project can be referenced properly
    • Use the latest MSBuild.Sdk.Extras for actual parallel cross-targeted builds
    • Move the nuget package versions to the Directory.Build.targets file so it's easier to change all versions at once.
  • Add support for NavigationView Top Navigation
  • Adjust SystemChromeMediumHighColor to use the Light theme
  • Add support for FrameworkElement.GoToStateCore
  • Adjust ListView measure/arrange for dynamic content
  • Add some missing default UWP styles
  • The FrameworkElement.IsLoaded property is now public
  • Improve XAML generation error messages for unknown symbols
  • Added default console logging for all platforms
  • Add support for Application.OnWindowCreated
  • Added non-throwing stubs for AutomationProperty
  • Add missing system resources
  • Add support for x:Bind in StaticResources (#696)
  • Add support for x:Name late binding support to adds proper support for CollectionViewSource in Resources (#696)
  • PointerRelease events are now marked as handled by the TextBox
  • KeyDown events that are changing the cursor position (left/right/top/bottom/home/end) are now marked as handled by the TextBox
  • RoutedEventArgs.IsGenerated returns false as generating events with Uno is not yet supported
  • AutomationPeer.ListenerExists returns false as we cannot generating events with Uno is not yet supported
  • KeyUp event properly sends KeyEventArgs to the controls
  • Add ItemsSource CollectionViewSource update support (#697)
  • Add support for the CollectionViewSource.ItemsPath property
  • Fixed support for dots in resource names (#700)
  • Add support for BindingExpression.UpdateSource()
  • Updated Android version to target Android 9.0
  • The CI validates for API breaking changes
  • MediaTransportControls buttons now use Tapped event instead of Click
  • Fixed Pointer capture issues on sliders on iOS

Breaking changes

  • Make UIElement.IsPointerPressed and IsPointerOver internal
  • You will not be able to build projects targeting Android 8.0 locally anymore. Change your Android target to Android 9.0 or replace MonoAndroid90 by MonoAndroid80 in the TargetFrameworks of your projects files.
  • 1.43.1 breaking changes rollback to 1.42.0:
    • ObservableVector<T> is now internal again
    • TimePicker.Time and TimePicker.MinuteIncrement are now back for netstandard2.0
    • MediaPlaybackItem.Source is back as a readonly property
    • MediaPlaybackList.Items is back to an IObservableVector

Bug fixes

  • Transforms are now fully functionnal
  • [Wasm] Fixed ListView infinite loop when using custom containers
  • [Wasm] Use Uno.UI Assembly for namespace type lookup in XamlReader
  • [Wasm] Fixed System.UriConverter is being linked out
  • 145075 [Android] [Wasm] Android and Wasm don't match all specific UWP behaviors for the Image control.
  • [Wasm] Don't fail if the dispatcher queue is empty
  • 146648 [Android] fixed ListView grouped items corruption on scroll
  • [Wasm] Fix ListView recycling when the XamlParent is not available for AutoSuggestBox
  • 147405 Fix NRE on some MediaTransportControl controls
  • #139 Update Uno.SourceGenerationTasks to improve build performance
  • Update Uno.UI.Toolkit base UWP sdk to 17763
  • [Wasm] Fixes items measured after being removed from their parent appear in the visual tree, on top of every other items.
  • [Wasm] Fixes lements may not be removed form the global active DOM elements tracking map
  • [Wasm] Disable the root element scrolling (bounce) on touch devices
  • Fixed invalid iOS assets folder. ImageAsset nodes must not be <Visible>false</Visible> to be copied to the generated project.
  • Make CollectionViewSource.View a proper DependencyProperty (#697)
  • Fixed support for string support for Path.Data (#698)
  • 150018 Fix nullref in Pivot when using native style
  • 149312 [Android] Added FeatureConfiguration.NativeListViewBase.RemoveItemAnimator to remove the ItemAnimator that crashes when under stress
  • 150156 Fix ComboBox not working when using Popover.
  • Click and Tapped events were not working property for ButtonBase on Android and iOS.
  • 150233 [Android] fixed status-bar, keyboard, nav-bar layout on android
    • LayoutProvider exposes the Rects of status-bar, keyboard, navigation-bar, and an LayoutChanged event to monitor the changes.
  • 150143 [Android] Toggling TextBox.IsReadOnly from true to false no longer breaks the cursor

Release 1.43.1

08 Mar 18:59
2ee6e1f
Compare
Choose a tag to compare

Features

  • [Wasm] Improve general performance and memory pressure by removing Javascript interop evaluations.
  • Add support for Windows 10 SDK 17763 (1809)
  • Improve the Uno.UI solution memory consumption for Android targets
  • Add support for GridLength conversion from double
  • Raise exceptions on missing styles in debug configuration
  • Add working ViewBox stub
  • Path.Data property now invalidates measure and arrange
  • Wasm Image logs Opened and Failed events
  • Add UpToDateCheckInput to avoid VS invalid incremental rebuilds
  • 35178 Added recipe for copying text to clipboard
  • Added ToogleSwitch documentation in Uno/Doc/Controls.
  • Added new properties for ToggleSwitch Default Native Styles.
    [iOS] For BindableUISwitch : TintColorBrush property was added to be able to tint the outline of the switch when it is turned off.
    [Android] For BindableSwitchCompat : - Text property was added in order to change the ToggleSwitch label.
    - TextColor property was added in order to change the ToggleSwitch label color.
    - ThumbTint property was added in order to change the Thumb color.
    - TrackTint property was added in order to change the Track color.
  • Samples apps now contain a Unit Tests page
  • Added missing resources for NavigationViewItem
  • All Nuget and VSIX artifacts are now Authenticode signed
  • Resource strings are now loaded from upri files for faster resolution
  • Add FeatureConfiguration.Interop.ForceJavascriptInterop to enable JS Eval fallback in Wasm mode.
  • Add support for 1809 NavigationView
  • Add support for runtime conversion of global static resources unknown at compile time
  • Fixed fallback support for Style property set via ThemeResource
  • Add support for multiple resw folders with upri resource generation
  • Add support for ThicknessHelper
  • ResourceLoader adjustments …
    • CurrentUICulture and CurrentCulture are set when setting ResourceLoader .DefaultCulture
    • upri load now ignores resources not used by the current culture
  • Add BrushConverter support for Color input
  • Add SplitView support for PaneOpened and PaneOpening
  • Add CoreApplication.GetCurrentView() Dispatcher and TitleBar stubs support
  • Add support for IsItemItsOwnContainer iOS ListView
  • Add missing Android Sample App symbols font
  • Add SampleControl for Samples app for easier browsing and UI Testing of samples
  • Import Border samples
  • Improve UIElement inner Children enumeration performance and memory usage
  • Add FeatureConfiguration.FrameworkElement.AndroidUseManagedLoadedUnloaded to control the native or managed propagation performance of Loaded/Unloaded events through the visual tree
  • Raise Application.UnhandledException event on failed navigation
  • Adjusts the Microsoft.NETCore.UniversalWindowsPlatform version in the UWP head template to avoid assembly loading issues when using the Uno library template in the sample solution.
  • [Android] Add support for ListViewItem instances provided via the ItemsSource property
  • Added support to disable accessibility feature of larger text on iOS and Android by adjusting the FeatureConfiguration.Font.IgnoreTextScaleFactor flag. Please note that Apple recommends to keep text sizes dynamic for a variety of reasons and to allow users to adjust their text size preferences.
  • [Wasm] Code for Path.Stretch has been moved to Shape and works well now for all shapes.
  • Add support for DynamicObject data binding, to enable support for Elmish.Uno.
  • Add support for VS2019 VSIX installation
  • Improved Xaml generation speed, and incremental build performance
  • [Wasm] Fix CoreDispatcher StackOverflowException when running on low stack space environments (e.g. iOS)
  • Add support for ResourceLoader.GetForViewIndependentUse(string) and named resource files
  • [Wasm] Load events are now raised directly from managed code. You can restore the previous behavior (raised from native) by setting FeatureConfiguration.FrameworkElement.WasmUseManagedLoadedUnloaded = false.
  • Updated memory profiling documentation
  • Updated default app template iOS GC settings
  • Add support for WebAssembly Web Projects
  • Add support for WebAssembly debugging with Chrome
  • Add support for XAML x:FieldModifier
  • Add Uno.UI linker definition files
  • Adjust FlyoutPresenter default template
  • Add support for Flyout anchor
  • Improved XAML designer support
  • Improved DependencyObject performance under AOT (JS dynCalls for overrides/delegates inside of EH blocks)
  • Add support for MatrixTransform, UIElement.TransformToVisual now returns a MatrixTransform

Breaking changes

  • Refactored ToggleSwitch Default Native XAML Styles. (cf. 'NativeDefaultToggleSwitch' styles in Generic.Native.xaml)
    [iOS] For BindableUISwitch : Background property was changed for OnTintColorBrush and Foreground property for ThumbTintColorBrush.
    [Android] BindableSwitch was renamed BindableSwitchCompat in order to avoid confusion with the Switch control.
  • Remove invalid Windows.UI.Xaml.Input.VirtualKeyModifiers
  • Time picker flyout default styles has been changed to include done and cancel buttons
  • DataTemplateSelector implementations are now called using the 2 parameters overload first with a fallback to the 1 parameter overload on null returned value.
    Old behavior could be restored using FeatureConfiguration.DataTemplateSelector.UseLegacyTemplateSelectorOverload = true.
  • Using "/n" directly in the XAML for a text/content property is not supported anymore in order to match the UWP behavior.
    You can use " " instead in the text/content properties or a carriage return where you need it in the localized resources.
  • The ResourcesGeneration msbuild target has been renamed to UnoResourcesGeneration
    If your csproj is using this target explicily, change it to the new name.

Bug fixes

  • MediaPlayerElement [iOS] Subtitles are not disable on initial launch anymore
  • MediaPlayerElement [Android]Player status is now properly updated on media end
  • MediaPlayerElement [Android]Fix issue when video metadata reports a width or height of 0
  • #388 Slider: NRE when vertical template is not defined
  • 138117 [Android] Removing a bookmarked/downloaded lesson can duplicate the assets of a different lesson.
  • [Wasm] Fix VirtualizingPanelAdapter measure and arrange
  • 137892 [Android] Fixed FontFamily, FontSize and FontWeight are not applied anymore on the TextBox's content.
  • Don't fail on empty grid ArrangeOverride
  • Don't generate the Bindable attribute if already present
  • Adjust .NET template projects versions to 4.6.1
  • Adjust Microsoft.CodeAnalysis versions to avoid restore conflicts
  • Fix element name matching existing types fails to compile (e.g. ContentPresenter)
  • 138735 [Android] Fixed broken DatePicker
  • Multi-selection Check Boxes in ListViewItems are appearing brielfly (#403)
  • 140721 [Android] FlipView not visible when navigating back to page
  • 138537 [iOS] App freezes after State selection causing infinite load on every subsequent launch
  • Fix invalid Border Content type for macOS
  • Don't fail iOS ListView if item Content is null
  • [Wasm] Implement naive refresh for items manipulation in the ListViewBase
  • 3326 [iOS][ItemsControl] ItemsControl in FlipView does not restore items properly
  • Fix NRE in Slider when no template is applied
  • Fix Frame does not unset Page.Frame when a page is removed
  • Add Wasm PlatformNotSupportedException for System.IO after CoreFX merge in mono
  • Border properties now invalidates measure and arrange on all platforms
  • 141907 [Android] [iOS] The toggle switch is half missing.
  • 142937 [Android] [iOS] Some Button ThemeBrushes are missing.
  • 143527 [Android] Fixed broken TimePicker Flyout on android devices.
  • 143596 [Wasm] Images stretching is incorrect
  • 143595 [Wasm] Wasm ListView Resizing is not working - Limitation: items can't change its size yet, but it's now getting measured/arranged correctly.
  • 143527 [Android] Fixed broken TimePicker Flyout on android devices.
  • 143598 [Wasm] Wasm Animation rotation center is incorrect
  • Fixes invalid parsing of custom types containing {} in their value (#455)
  • Add workaround for iOS stackoverflow during initialization.
  • Improve the file locking issues of Uno.UI.Tasks MSBuild task
  • Fix VisibleBoundsPadding memory leak
  • [ios] Time picker missing "OK" confirmation button
  • #87 / 124046 ComboBox incorrect behavior when using Items property
  • [Wasm] ComboBox wasn't working anymore since few versions
  • Fix memory leak with defining event handlers in XAML documents
  • Fix memory leak in CommandBar
  • Fix memory leak when using x:Name in XAML documents
  • 143170 [iOS] [WatermarkedDatePicker] When the Maxyear boundary is reached the first time, the calendar goes back two days instead of one
  • #491 DataTemplateSelector.SelectTemplate is not called on iOS and Android. The behavior is now closer to UWP.
  • 144268 / #493 : Resources outside of 'en' folder not working
  • Support for duplicate XAML AutomationProperties.Name
  • ListViewBase.SelectedItems is updated on selection change in Single selection mode
  • #528 ComboBoxes are empty when no datacontext
  • Ensure that Uno.UI can be used with VS15.8 and earlier (prevent the use of VS15.9 and later String APIs)
  • [Android] Listview Items stay visually in a pressed state,(can click multiple) when you click then scroll down, click another item, and scroll back up
  • 144101 fixed ListView group headers messed up on item update
  • #527 Fix for Selector.SelectionChanged is raised twice on updated selection
  • [iOS] Add fail-safe on FrameworkElement.WillMoveToSuperview log to Application.Current.UnhandledException