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
andGrid.RowSpacing
- Multitouch pointers support
- Support for
UIElement.RightTapped
andHolding
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 theUno.Toolkit
to provide elevation & rounded corners on all platforms
(not supported on Windows yet, because Uno needs to target framework10.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
andExitFullScreenMode
on WebAssembly - Support for
MessageDialog
on macOS - [Android] support of
KnownFolders.MusicLibrary
andVideosLibrary
- Add support for
StorageFile.DateCreated
- Support for
ApplicationView.IsScreenCaptureEnabled
on Android - Add support for
StorageFile.DeleteAsync()
- Support for
PointerDown
,PointerUp
PointerEntered
,PointerExited
andPointerMoved
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 aStaticResource
when using `CreateFromStringAttribute' - [Android] Adds support for
FeatureConfiguration.ScrollViewer.AndroidScrollbarFadeDelay
- Add support for
Grid.ColumnSpacing
andGrid.RowSpacing
- Add clarification in documentation for adding automated UI tests
- Add support for
Popup.LightDismissOverlayMode
, as well asDatePicker.LightDismissOverlayMode
andFlyout.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 theTextBox
) - 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
andApiExtensionAttribute
- Add support for Surface Duo through the
Uno.UI.DualScreen
package - Add support for enums in
x:Bind
functions andBindBack
- Add XamlReader support for Primitive static resources
- [Android] Add support for non-native
Popup
by default. Can be enabled throughFeatureConfiguration.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
IconElement.AddIconElementView
is nowinternal
so it is not accessible from outside.- On iOS, the parent of the
ListViwItem
is now theNativeListViewBase
(was theListView
it self) as described here https://github.com/unoplatform/uno/blob/master/doc/articles/controls/ListViewBase.md#difference-in-the-visual-tree
Bug fixes
- [iOS] Applying a
<RenderTransform>
on an image was producing an incorrect layout result. - Add support for
CornerRadius
in defaultComboBox
style - Fix for samples app compilation for macOS
- [#2465] Raising macOS Button Click event
- [#2506]
DesignMode.DesignMode2Enabled
no longer throws (is alwaysfalse
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 forLocalSettings
- 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 onControl
inside anotherControl
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 horizontalScrollViewer
: 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'sRenderTransform
- [#2033] Add Missing
LostFocus
Value toUpdateSourceTrigger
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
forGridLength
andTimeSpan
- 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