Skip to content

Releases: unoplatform/uno

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

1.43.0-dev.657

17 Jan 23:09
11fa58e
Compare
Choose a tag to compare
1.43.0-dev.657 Pre-release
Pre-release

This release is contains a preview of the WebAssembly projects and C# debugger.

See this article for more details on this release.

Uno.UI Release 1.42

26 Nov 19:50
c6830b7
Compare
Choose a tag to compare

This new release includes the following major features :

  • Add support for NavigationView control (#325)
  • [WASM] Support virtualization in ListView (#234)
  • Add base infrastructure platform for macOS
  • Add support for UIElement.Clip for WebAssembly
  • Add BitmapIcon support

And other features:

  • Add a behavior so that tap makes controls fade out
  • [Android], [iOS] ListViewBase Support MultiSelectStates on ListViewItem. This allows the item container
    to visually adapt when multiple selection is enabled or disabled.
  • Add support for inner-Uno.UI strings localization
  • Add stubs for RichTextBlock
  • Add support for SymbolIcon control for WebAssembly and iOS
  • Add BitmapIcon.ShowAsMonochrome support
  • Add support for Windows.Foundation.UniversalApiContract in IsApiContractPresent
  • Add support for ContentProperty on UserControl
  • Add DelegateCommand

This new release also addresses the following issues :

  • [Android] Fixed ImageBrush flash/flickering occurs when transitioning to a new page for the first time.
  • [iOS] Fixed bug where stale ScrollIntoView() request could overwrite more recent request
  • [iOS] ScrollIntoView() throws exception for ungrouped lists
  • [Android] TextBlock.Text isn't visually updated if it changes while device is locked
    Fix Android and iOS may fail to break on breakpoints in .xaml.cs if the debugging symbol type is Full in projects
    created from templates.
  • [Android] Path is cut off by a pixel
  • [Android] Window bounds incorrect for screen with rounded corners
  • [WASM] Text display was chopped on Wasm. (#312)
  • WebView No longer raises NavigationFailed and NavigationCompleted events when navigation is cancelled on
    iOS.
  • [Android] Page elements are aligned differently upon back navigation
  • [iOS] Image inside Frame doesn't respond to orientation changes
  • Fix crash when a VisualState does not have a valid Name
  • Adjust compiled binding application ordering when loading controls
  • Ensure the SplitView templated parent is propagated properly for FindName
  • Fix infinite loop when parsing empty Attached Properties on macOS
  • [iOS] Fixed DatePickerSelector not propagating coerced initial value
  • [iOS] Navigating to a second local html file with WebView doesn't work.
  • CommandBar doesn't take the proper space on iOS phones in landscape
  • Image with partial size constraint now display properly under Wasm.
  • [iOS][TextBlock] Measurement is always different since we use Math.Ceiling
  • [iOS] ListView - fix bug where item view is clipped
  • [Android] Incorrect offset when applying RotateTransform to stretched view
  • Now supports internal object in desource dictionaries
  • CommandBar doesn't take the proper space on iOS phones in landscape
  • The explicit property <Style.Setters> does not intialize style setters properly (#26 )
  • [Android] ListView shows overscroll effect even when it doesn't need to scroll
  • iOS project compilation fails: Can't resolve the reference 'System.Void
    Windows.UI.Xaml.Documents.BlockCollection::Add(Windows.UI.Xaml.Documents.Block) (#376 )

As a breaking change, the collapsible button bar is now taken into account by visible bounds calculation.
Apps which use VisibleBoundsPadding or have command bars will therefore see an adjustment to the height of their windows on Android.

View the full change log.

Uno.UI Release 1.41

02 Nov 17:56
7560f78
Compare
Choose a tag to compare

This new release includes a new implementation for the MediaPlayerElement control (#154).

This new release also addresses the following issues :

  • [Android] SimpleOrientationSensor calculations was updated based on SensorType.Gravity or based on single angle orientation when the device does not have a Gyroscope.
  • [iOS] The Time Picker flyout placement is not always respected.
  • [Android] Fixed the loading of ItemsPresenter.
  • [iOS] Fixed an issue when back swiping from a page with a collapsed CommandBar.
  • [iOS] Setting a different DP from TextBox.TextChanging can cause an infinite 'ping pong' of changing Text values.
  • [iOS] MenuFlyout was not loaded correctly, causing templates containing a MenuFlyout to fail.
  • [iOS] Image performance improvements.
  • [iOS] Fixed ImageBrush flash/flickering occurs when transitioning to a new page.
  • [Android] Fix crash in UpdateItemsPanelRoot() in the ItemsControl class.
  • [Android] Set the leading edge considering header can push groups out off the screen.
  • [Android] Fixed Window bounds set too late.
  • [iOS] Improve ListView.ScrollIntoView() when ItemTemplateSelector is set.
  • [Android] Content occasionally fails to show because binding throws an exception.
  • [Android] Binding MediaPlayerElement.Source causes video to go blank.
  • [iOS] ComboBox does not display its Popup.
  • [iOS] Ensures the back gesture is enabled and disabled properly when the CommandBar is visible, collapsed, visible with a navigation command and collapsed with a navigation command.

View the full change log.

Uno.UI Release 1.40

03 Oct 15:06
Compare
Choose a tag to compare

This release is the first non-experimental release of the Uno Platform since the initial public version in May 2018. Lot of bug fixes and features have been added since then, and lots more are coming.

A lot of those changes where included to support these libraries : MVVMLight, ReactiveUI, Prism, Rx.NET, Windows Community Toolkit, Xamarin.Forms UWP.

The VisualStudio Add-in is available through the marketplace.

Here are some highlights of this release:

  • General improvement in the memory consumption of the ListView control
  • Many Wasm rendering and support updates
    • Invalid images support
    • Text and images measuring fixes
    • Add support for AppManifest.displayName
  • Support for the Pivot control
  • Support for inline XAML event handlers in DataTemplate
  • Support for implicit styles in the XamlReader
  • Support for ThreadPoolTimer
  • Add support for implicit bool to Visibility conversion
  • Support for AutoSuggestBox
  • SourceLink, Reference Assemblies and deterministic builds are enabled
  • Support for x:Name reference in x:Bind markup
  • Support for WriteableBitmap for all platforms
  • Added support for Cross-platform Library template in vsix
  • Added support for StaticResource as top level ResourceDictionary element
  • Added support for AutomationPeer
  • Android status bar height is now included in Window.Bounds
  • Add support for Underline in HyperLinkButton
  • Add support for TextBlock.TextDecorations
  • TextBlock base class is now FrameworkElement on iOS, instead of UILabel
  • Auto generated list of views implemented in Uno in the documentation
  • Add support for string to Type conversion in XAML generator and binding engine
  • Support for Attached Properties localization
  • Added ItemsControl.OnItemsChanged support
  • Added support for ListView GroupStyle.HeaderTemplateSelector for iOS/Android

View the full change log.