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
andTrySetInputMethodLanguageTag
on Android, iOS and WASM - Add support for
ChatMessageManager.ShowComposeSmsMessageAsync
(andChatMessage
Body
andRecipients
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
- Use
- [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 levelResourceDictionary
(#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
andDatePicker
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
andx:DeferLoadStrategy
- [Wasm] Scrolling bar visibility modes are now supported on most browsers
- Fix invalid cast exception when using
x:Load
orx: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
andFlyoutBase.ShowAttachedFlyout()
x:Bind
now supports binding to fieldsGrid
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 overAppBarButton.Content
when used asPrimaryCommands
. - 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 theWindow
) - [iOS] Add support of
INotifyCollectionChanged
in thePicker
- [iOS] Remove the arbitrary
null
item added at the top of thePicker
- [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 supportsColumnDefinition.MinWidth
andMaxWidth
andRowDefinition.MinHeight
andMaxHeight
(#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
, theAppBarButton.Label
property will no longer be used for the title of menu item, instead use theAppBarButton.Content
property. ForSecondaryCommands
, keep usingAppBarButton.Label
. - The
WordEllipsis
was removed from theTextWrapping
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 theTextTrimming.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 inuap10.0.x
target frameworks. - The
XamlReader
fails when a property has no getter Click
andTapped
events were not working property forButtonBase
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 onStyle
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 aSelector
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 ApplyStretch breaking mediaplayer- fixed
- 154815 [WASM] ItemClick event could be raised for wrong item
- 155256 Fixed xaml generated enum value not being globalized
- 155161 [Android] fixed keyboard flicker when backing from a page with CommandBar
- Fix the processing of the GotFocus event FocusManager (#973)
- 116098 [iOS] The time/day pickers are missing diving lines on devices running firmware 11 and up.
- [iOS] Fix invalid DataContext propagation when estimating ListView item size (#1051)
- RadioButton was not applying Checked state correctly with non-standard visual state grouping in style
- [Android] Fix several bugs preventing AutoSuggestBox from working on Android. (#1012)
- #1062 TextBlock measure caching can wrongly hit
- 153974 [Android] fixed button flyout placement
- Fix support for ScrollBar touch events (#871)
LinearGradientBrush.EndPoint
now defaults to (1,1) to match UWP- Fixed an issue where a Two-Way binding would sometimes not update values back to source correctly
- [Android] A ListView inside another ListView no longer causes an app freeze/crash
- Date and Time Picker Content fix + Refactored to use PickerFlyoutBase (to resemble UWP implementation)