Skip to content

Releases: unoplatform/uno

4.10.13

07 Sep 15:55
aa0c401
Compare
Choose a tag to compare

The 4th release of 2023 brings many updates to Uno Platform, including the much-requested MAUI Embedding, Lightweight Styling along with the new ShadowContainer control, Neumophic Styles, iOS Hot Restart, Wasm CSP Support and more.

Our team is aiming to make you as productive as possible developing with .NET. The community and clients asked for MAUI extensions to be developed to aid them in Xamarin.Forms migration, so we delivered. In addition we support the .NET OSS ecosystem and we regularly contribute to .NET, including the two PRs that are making MAUI embedding more effective (dotnet/maui#16758, dotnet/maui#16803), as well as the latest SkiaSharp 2.88.5 which includes .NET 8 compatibility and WebAssembly fixes.

See our blog post for more details!


Features

  • hotrestart: [iOS] Add support for VS 2022 hot restart e74af99
  • Enable DispatcherQueueTimer and DispatcherTimer on unit tests 6a70e3d
  • pointers: Add (internal) ability to prevent default behavior of pointer events on WASM 5d302d3
  • pointers: Update skia hosts init to unify pointer support b2b0a54
  • scp: Add ability to reverse pointer wheel on the SCP for managed scrolling on skia and wasm 4be3764
  • Support for ProximitySensor on Android 383eb2e
  • pointers: Add PointerInputSource for macOS e9941bf
  • Support for SingleSelectionFollowsFocus 50ceb6d

Performance Improvements

  • Add Alert binding 6c7f6db
  • Add ApplicationView bindings a579aa9
  • Add AssetsManager bindings b02b729
  • Add Automation exports 109938c
  • Add BadgeUpdater bindings 60ab27a
  • Add ContactPicker bindings b9571c7
  • Add DataTransferManager bindings 3769dae
  • Add DispatchBackRequest export 45ea17f
  • Add DispatchContentChanged export 2e0c9da
  • Add DispatchMessage export 9b10802
  • Add DispatchNativePositionChange export f178115
  • Add DispatchStateChanged export 62bb542
  • Add DispatchStatusChanged export b857ab6
  • Add DispatchStorageInitialized export c0b6900
  • Add DispatchSystemThemeChange export e9b2451
  • Add DispatchVisibilityChange export 06f31f2
  • Add DisplayInformation exports 68d4243
  • Add DisplayRequest bindings 1b60854
  • Add DragDropExtension bindings 80bea90
  • Add FindDevices binding a16faba
  • Add FontFamily exports 41cd620
  • Add Gamepad bindings 387cf90
  • Add Gamepad exports ec769bf
  • Add GenerateGuids export b0c13b1
  • Add GetUserAgent binding 74367b5
  • Add Gyrometer bindings a841dd2
  • Add Gyrometer.DispatchReading export 48b1a69
  • Add LightSensor bindings 3de29ad
  • Add LightSensor.DispatchReading export 2207ef9
  • Add Lottie bindings 89b89fe
  • Add Magnetometer bindings 8911155
  • Add Magnetometer.DispatchReading export 2e1f623
  • Add MidiDeviceConnectionWatcher bindings 0da6c21
  • Add MidiInPort bindings c01a392
  • Add NetworkInformation bindings cca5e0d
  • Add OnNativeDropEvent export 7114313
  • Add Open binding b64414c
  • Add RegisterProtocolHandler binding d412b4a
  • Add RequestAsync binding 1a6e598
  • Add SendBuffer binding 6a75970
  • Add SpeechRecognizer bindings 22daa68
  • Add SpeechRecognizer exports 207f109
  • Add SystemNavigationManager bindings 81dd293
  • Add VibrationDevice bindings 342f2c3
  • Proper cancellation for XamlFileParser 463d921
  • Reduce array allocations when setting a single property on Wasm 9634171
  • AnalyticsInfo: Add GetDeviceType binding 6146848
  • ApplicationViewTitleBar: Add SetBackgroundColor binding 8d54f1a
  • Clipboard: Add GetTextAsync binding 582ff39
  • ConnectionProfile: Add HasInternetAccess binding 13d39e9
  • CoreWindow: Add SetCursor binding c3ee894
  • DisplayInformation: Add SetOrientationAsync binding 9cdf0b7
  • FileSavePicker: Add SaveAs binding ed5ef1b
  • Add WebAuthenticationBrokerProvider bindings d3b2e48
  • MSAL: Add AuthenticateAsync binding ec977f6
  • WindowManager: Add GetNaturalImageSizeAsync binding 223c0e6

Bug Fixes

  • android: Propagate theme change to all list view items properly 97dc9ac
  • android_clipping: Fixed clipping was applied on Android when opacity (Alpha) where less than 1. 7c69057
  • assets: Adjust assets caching by including assembly and package versions d7317ff
  • CameraCaptureUI: [iOS] Adjust camera capture for recent iOS builds 520e3af
  • ComboBox: Adjust incorrect visual state update 0422986
  • fb: Adjust initialization for framebuffer host b66e798
  • fb: Don't validate textbox features when IOverlayTextBoxViewExtension is not avialble 2f6fd2c
  • filepicker: add delegate for image picker 41b16bc
  • flyout: fix dismiss flyout on Escape cb89661
  • flyout: open flyout on tap 78ba0bb
  • Input: Properly update last input device type on Skia and WASM db7ba1f
  • ios: an instance of ListView crash during layout 3d0a558
  • iOS: ListView delete item with Bindings eccdb9b
  • listview: [Android] Adjust datacontext for header/footer for ListView 42453be
  • listview: [iOS] Adjust datacontext for header/footer for ListView e51355a
  • listview: add ctrl support for keyboard navigation in ListView 87620d3
  • listview: add support for Ctrl+Click unselecting e161fae
  • ListView: [iOS] Ensure that the DataContext propagates properly to Header/Footer f0fa91d
  • net8: Ensure that roslyn generators can be used when LangVersion is empty 722ad06
  • scrollviewer: raise PointerEnter/Exit when scrolling causes the pointer to be over a new item ae436b6
  • slider: fix dragging when the initial press is not on the thumb 2a19610
  • TextBlock: [Skia] Fix unsupported symbols rendering 5ffb03b
  • TextBlock: fix the whitespace missing issue of TextBlock Inline 90c29b4
  • ToggleSwitch: Don't force end position when ToggleSwitch is unloaded 830f517
  • vs: Restore intellisense for non-windows targets 50255d5
  • WebView: Update Android navigation properties on JS-based history changes fac11f6
  • WebView: Update iOS navigation properties on JS-based history changes 11f2de9
  • xamlreader: attached-property in setter 35a6aeb
  • xamlreader: res-dict parsing 362e2a6
  • Adjust hotrestart disable property b04c179
  • Align Duration behavior with WinUI e0bd26e
  • Avoid duplicate SyncDataContext 74e8472
  • Avoid propagating routed events up from PopupPanel 3f7c219
  • Avoid throwing if result of ExecuteScriptAsync is null 38cfd0f
  • Avoid unsetting item container DataContext 5250ebc, closes #12845
  • Correcting event handler removal cc6997c
  • Correctly raise ImageFailed on Skia 620c190
  • docs markdown tab d18abe2
  • Don't generate hotrestart stubs when maui is present 845edcb
  • Ensure CalendarView item styles are updated properly on reload dc00963
  • Ensure ThemeResource bindings are properly updated when style is applied 341cd26
  • Ensure Window size is initialized for Android a52a3d1
  • Fix TemplateBinding not working with attached DPs 06d2261
  • Fix toggle switch knob translation 37fe8ae
  • Fix x:Bind not considering inherited methods for events b293cda
  • Image with explicit size is not arranged correctly c3cc5b0
  • Implementing IDisposable and detaching event handlers 1bf5fad
  • MediaPlayerElement does not play a local source 25e3d33
  • Prevent nested elements with GestureRecognizers from raising overlapping events e2b9066
  • Propagate theme change to TextBlock inlines ab9df61
  • Properly display PosterSource for MediaPlayerElement on all platforms 9f0a507
  • Properly generate code for items in custom dictionary 8a208e8
  • Properly update WebView history properties 8c30254
  • Raise ImageFailed properly on Android adab001
  • Respect HyperlinkForeground 5c7b93d
  • Set initial Window size earlier on WASM a883ba8
  • Uno Islands sample apps had incorrect targets set 4ef38b2
  • droid: CommandBar AppBar Icon crashing 8ff5e83
  • droid: nullable types 9580db2
  • Adjust DispatcherQueueTimer behavior to match WinUI 94318ef
  • Adjust DispatcherQueueTimer on Android to match WinUI behavior 5ed9e54
  • DispatcherTimer with default Interval on Skia and WASM f43af6c
  • Use fallback color for unsupported brushes 67657f1
  • AutoSuggestBox: adjust the parameter of SubmitSearch f5c17e3
  • AutoSuggestBox: fix the AutoSuggestBox not working when using custom ItemContainerStyle 1041d3f
  • AutoSuggestBox: fix the issue that e.ChosenSuggestion is incorrect 7c3911b
  • AutoSuggestBox: fix the issue that SuggestionList is not updated properly 5a502ac
  • AutoSuggestBox: Init the ChosenSuggestion to null after calling the QuerySubmitted handler 8b4624a
  • AutoSuggestBox: optimize the code 90bd0a7
  • AutoSuggestBox: return null as ChosenSuggestion when query button is clicked c471dc1
  • AutoSuggestBox: set QueryText to _textBox.Text d0b99ae
  • AutoSuggestBox): revert "fix(AutoSuggestBox: Init the ChosenSuggestion to null after calling the QuerySubmitted handler" e45dafa
  • ContentControl: set Content null when using ComboBox 1eaea2a
  • droid: SVGImageSource open file when custom downloader 1c94322
  • FileOpenPicker: iOS open image library when using PickerLocationId.PicturesLibrary c7e92ef
  • gtk: report gtk init error through stderr. 5da0b4b
  • ImageSource: SvgImageSource crashing on null uri abc8426
  • iOS: SVGImageSource null exception efc6778
  • linux: Adjust initial position on ubuntu distro d378ff9
  • lottie: Fixed a regression where the lottie module where not properly loaded when the was used in the csproj baa1652
  • media: Adjust error reporting on libVLC initialization 246621f
  • **...
Read more

4.9.17

05 Jun 19:19
3dafa2f
Compare
Choose a tag to compare

Uno Platform 4.9.17 brings two much requested features, as well as well as over 100 other improvements.

First, .NET developers can now reuse MediaPlayerElement across all supported platforms – iOS, Android, Web, Mac and Linux, in addition to, of course, Windows itself.

Second, we’ve added support for WebView2 for iOS, Android and Mac Catalyst.

Head to our blog post for more details about this release.

Community Shout Out

As always, thanks to our community contributors!


Features

  • Resizing video for transport controls 5b4436f
  • wasm: Support ms-appdata for Image 4b48a50
  • Add extensibility support for Windows.Media.Playback.MediaPlayer 50cff71
  • Add missing MUX and Microsoft.Web generated APIs 34e34a4
  • Add support for Window.Title in Uno.WinUI 36a4a3b
  • Delaying paint until Activation 3819b16
  • Display Android Splash Screen until Window.Activate 4cd5c8a
  • Improve IconElement, include shared Grid c10c689
  • Initialize WindowManager asynchronously 09be506
  • Move OS theming logic to SystemThemeHelper b8e36a7
  • Support for FontIcon.MirroredWhenRightToLeft 7632d67
  • Support indexers in x:Bind 2612342
  • Wasm: Implement UIElement.ProtectedCursor 99d3078
  • initial implementation with basic playback capabilities 5786d73
  • Support CommunityToolkit.Mvvm in two way x:Bind 8ffc159
  • Support for UIElement.ActualOffset 76d72ab
  • svg: [Wasm] Add support for ms-appdata 8dd1e30
  • Add support for ExecuteScriptAsync on iOS/macOS 6da41f4
  • Apply themed background color to root visual fecbd42
  • Display WASM Splash Screen until Window.Activate 28628b0
  • Enabling net6 support for msal on ios/android 9780f82
  • ExecuteScriptAsync and InvokeScriptAsync on Android 8a9f504
  • Include full namespace for FrameworkPropertyMetadata in generated code 0df4900
  • Include MUX and Microsoft.Web namespaces in Uno.UI SyncGenerator c6cf258
  • Key CoreWebView2 event args, events 9b2d107
  • Move linked/shared messaging files into a new package feb2bb7
  • Support for DefaultTextForegroundThemeBrush 95324b5
  • Support for IconSourceElement 7188dd7
  • Support for WebMessageReceived on Android 8072ecc
  • Support for WebMessageReceived on iOS/macOS cb09425
  • Support more ComboBox visual states a89ab15
  • Support persistent bootstrapper loaders on WASM 39d44ee
  • CurrencyFormatter: Implement FormatDouble and ParseDouble d5616ad
  • nativehost: Add support the native view hosting 756f1ad
  • pointers: Fix pointer state not updated properly 33a38ea
  • Run: [Skia] Add support to Unicode Symbol and emoji 46ed691
  • update Cross Runtime Library template to WinUI / net7 5e3599f
  • Update to latest version of Uno.Fonts.Fluent 77df8a0
  • WebView: Support for IsScrollEnabled 3fbd8fb

Performance Improvements

  • Add Application bindings 9a3c97b
  • Add Clipboard bindings f201f48
  • Add CreateInstance binding 75f0bbc
  • Add DestroyInstance binding 6607df4
  • Add DisableFrameReporting binding 65ffab1
  • Add DispatcherCallback export b42f301
  • Add DisplayInformation bindings b7d0279
  • Add EnableFrameReporting binding 0f04f79
  • Add fast path when TextBlock has a single Run 036ebd3
  • Add FileOpenPicker bindings 2482244
  • Add FileSavePicker bindings 7dbddbc
  • Add FolderPicker bindings 1a2e00f
  • Add ForceFontUsage binding 2f3a3e8
  • Add GetAppMemoryUsage binding 0a109f5
  • Add GetBasicPropertiesAsync binding 131d4f8
  • Add GetBootTime binding 8309a5c
  • Add JSObject.Dispatch() export 753f368
  • Add LoadFont binding 57f4ce7
  • Add NativeReadStreamAdapter bindings 72bd34d
  • Add NativeWriteStreamAdapter bindings 1f6a53b
  • Add OnNativePointerEvent export bbdcc2b
  • Add RegisterNoOp binding f735d89
  • Add SetAnimationFramesInterval binding 5f06391
  • Add SetStartFrameDelay binding 8a39643
  • Add StorageFolder bindings 44e0b99
  • Add SystemFocusVisual bindings fbbccaf
  • Add WindowManager initialization exports 6e81972
  • Avoid native call to get parent while bubbling events 50cc2a3
  • Avoid rooting compilations in XamlFileGenerator 1773201
  • Avoid using Regex in AndroidResourceNameEncoder b15c12f
  • Fix few more occurrences of ToDisplayString f517a6a
  • GetWinUIThemeResourceUrl shouldn't format a string 8471381
  • Move some XAML generator caches to compilation-level 610ce31
  • Reduce dictionary lookups of repeated FindType call on the same XamlType 0b0d1af
  • Reduce string allocations in XamlFileParser fc64e72
  • Use StringBuilderBasedSourceText in DependencyObjectAvailabilityGenerator 31701d7
  • Use memoized FindType instead of SourceFindType 743c1f8
  • Animations: Marshal pointers instead of strings d51f099
  • WindowManager: Add CssSupports binding bf0276d
  • WindowManager: Add FindLaunchArguments binding 5152ab2
  • WindowManager: Add FocusView binding cd8db30
  • WindowManager: Add GetAttribute binding 9a46fda
  • WindowManager: Add GetProperty binding ca1be0a
  • WindowManager: Add RawPixelsToBase64EncodeImage binding 5991c93
  • WindowManager: Add ReleasePointerCapture binding aa423c3
  • WindowManager: Add SelectInputRange binding 3006ede
  • WindowManager: Add SetImageAsMonochrome binding aec6bcc
  • WindowManager: Add SetPointerCapture binding 6fc79f1
  • WindowManager: Add Window bindings 77e89ea
  • Address TODO regarding O(n) search 90c1dc5
  • Cache PreorderTree to avoid expensive enumeration d1610cd
  • Cache SKFont to avoid unnecessary allocations 3200437
  • Don't use LINQ in measure path b7ca706
  • Implement an alternative to ToDisplayString d58ecc2

Bug Fixes

  • [Android] fix android transformtovisual 02d2582
  • avoid calls to CGColorCreateSRGB before iOS13 cb4a983
  • Corrected sizing of videoView 1eee18d
  • dispatch setting of visibleboundspadding insets 3420cb5
  • Do not throw for already disposed callbacks ade95d8
  • FileStorage.CopyAsync should open target stream for write bf9db5a
  • Fix CalendarView selecting next day due to not respecting current time zone 014673d
  • Get video playing again 6b18dac
  • style + case diff between iOS and Mac API 53467fc
  • Transparency pixels 4134047
  • Update Uno.Fonts.Fluent to get latest glyph fixes 6a8960f
  • animation: anomalies when quickly transitioning between multiple VisualStates of same VSGroup 101606e
  • animation: not defaulting starting value from animated value 54a6d5d
  • AutoSuggestBox: fix Suggestion Item not being selected 498e536
  • CalendarView: CalendarView SelectedDates not working 1bab1ee
  • CalendarView: Fix CalendarView positioning of day's TextBlocks a4ddc83
  • CalendarView: fix the date selecting error by difference of timezone fffad38
  • ci: Ensure Uno.Foundation.Runtime.WebAssembly NET7 is published c336724
  • ComboBox: flyout placement in ios SheetPage af92831
  • droid: bringintoview for not visible items 5e0c4fe
  • droid: ScrollView Offset fc86ee6
  • ExportManager: Ensure Uno NET7 is used 1c22a28
  • Geolocator: Stop using location when unsubscribing from events. 22ee956
  • image: Don't update the image asynchronously to avoid showing intermediate visuals 27001a8
  • iOS: GetTransform allow controllers to be null 76e1bed
  • ItemsControl: desync from modifying ItemsSource of non-INCC/IObservableVector source 4cee87a
  • itemsRepeater: Fix regerssion that would prevent nested IR to render items after the first page if scrolling slowly 342b8a6
  • ListView: unnecessary SelectTemplate call on collection reset fab5c1c
  • lottie: Improved the loadeability of Lottie library on Wasm when running in Embedded context. 685ba37
  • pointers: [Skia] fix captured release to early when crossing bounds of the capturing element + invalid dispatch to a transformed elements e1a1929
  • pointers: Make sure to cleanup pointers state when an element is being recycled 027323b
  • progressing: prevent breaking change by internal interface b39a2d3
  • reg: Fix offset computation of native only elements 5630f84
  • reg: Fix pointer capture broken on Firefox ccb7a46
  • skia: UIElement.KeyDown firing twice per input ba79e98
  • ToolTip: fix an issue where the tooltip remains even when the button is pressed 35c9497
  • ToolTip: fix an issue where the tooltip remains even when the button is pressed cdf98ee
  • ToolTip: fix the namespace referencing error of virtual key. aa9a8c0
  • Add app.manifest to SamplesApps 27e318f
  • Add app.manifest to UWP-based templates 3db340c
  • Add missing app.manifest to old template cf8248b
  • Adding package metadata d40a8ba
  • Address Review 8148005
  • Adjust Border.Child replacement b26f1e2
  • Adjust Expander API to match WinUI aec2a15
  • Adjust for missing propsfile 5d0256e
  • Adjust full path property in netcore tests 22873d2
  • Adjust nullability of ApiExtensibility 715e676
  • Adjust transform on PopupPanel 886bc6d
  • Adjust vscode support d76fb34
  • Allow multiple reads of StorageFile 750e93a
  • always raise CoreWindow.KeyUp/Down 65fed34
  • ambiguity in KeyboardEvents sample f672f76
  • AppBar and CommandBar Uno Islands support 7ca5247
  • AppBar and Flyout base fixes for Uno Islands 5b0ca83
  • Avoid delay when hovering over SelectorItem with mouse 5f6c6b9
  • Avoid raising events when recycling TextBox, ToggleSwitch, and ToggleButton 0e1d70e
  • Call the correct FocusManager methods with option...
Read more

4.8.15

21 Mar 20:25
0d8b42d
Compare
Choose a tag to compare

We're excited to announce our second release for 2023, which includes over 200 fixes and product improvements, as well as support for .NET 8 Preview 2.

As promised, we've been hard at work on the improvements you requested in our 2023 Roadmap survey. One of the top requests was to make the startup experience with Uno Platform as seamless as possible. In response, we've introduced a new startup experience designed to make setting up new projects with Uno Platform easier and more flexible than ever before. The Uno Platform Templates wizard will guide you through setting up your project, allowing you to choose as many or as few pieces of Uno Platform as you desire. So, starting a new Uno Platform project is easier than ever moving forward!

As with every release we also spent significant effort in improving performance across all supported platforms. In addition to multiple in-memory and runtime performance improvements we are introducing OpenGL acceleration for Uno Islands, which are typically used in WPF modernization scenarios, showing 12x improvement over software rendering. In addition, TextBlock rendering for all Skia backends, showing 5x improvements in common scenarios.

Here are some additional noteworthy improvements:

  • ThemeShadow for iOS/Catalyst/Android
  • Shadows on Skia targets
  • Performance and memory improvements
    • Memory improvement in XAML SourceGenerator
    • Runtime performance and memory improvement in DependencyObject
    • Memory improvements in ItemsControl and ContentControl
  • GTK+Linux fixes for Ubuntu 23.04+ and Arch distributions

As always, a big shoutout to everyone who worked closely with our core contributor team to make this release possible:

Head to our blog post for additional details on this release!


Full Changelog

Features

  • Support for more Font properties in Skia Overlay TextBox e6976b1
  • renderTargetBitmap: [Skia] Add ability to use RenderTargetBitmap as Image.Source bfe33b7
  • Add feature flag for the layout cycle fix da44634
  • Add support for PropertySet, StringMap and ValueSet ed99e14
  • Add support for Scale property in CornerRadiusFilterConverter 089f344
  • Add support for ToolTip in Uno Islands 4b1328d
  • Add support for WPF OpenGL acceleration 5790368
  • Added support for shadows on SkiaSharp a7647ff
  • Basic implementation for HttpRequestMessage d032b36
  • Bump templates to use net7.0 by default adbc6a6
  • Bump UWPSyncGenerator version e39864e
  • Enable XAML Trimming by default 1a998ff
  • restore media player tests for winui 1f8ebfa
  • Support CameraCaptureUIMode.Video on Android 40ceeda
  • ThemeShadow support on Android bfaca1f
  • ThemeShadow support on iOS/macOS adfc824
  • Vector3 XAML conversion 54d65c5
  • Lamp: Support setting Brightness on Android 13 and later dd04f75
  • mediaplayer: Enable for WinUI, update to WinAppSDK 1.2 a1f25d5
  • xamlgen: Add support for debugging information, refactor BaseUri location fb3a55e
  • xamlparser: Adjust support for relative Uri parsing to enable contextual image loading 8b4c228

Performance Improvements

  • TextBox: Avoid unnecessary allocations 2e9cec7
  • Avoid calling ToString twice on the same StringBuilder c77884d
  • Avoid unnecessary TrimEnd call da8e8a4
  • DependencyObjectAvailabilityGenerator: Avoid calculating property names twice 60be919
  • Avoid holding into symbols 94cbbfe
  • avoid intermediate calls for Colors.FromInteger 7029a8b
  • Avoid unnecessary ToDisplayString 9d8abb9
  • Avoid using GetAllTypesAttributedWith eed1949
  • Don't allocate DependencyPropertyCallbackManager on disposal daf8cd3
  • Faster symbol lookup e065b53
  • Optimize LOH string allocations in Xaml generator 8d161db
  • do: Reduce CallbackManager allocations when no callbacks are registered 9aa78b5
  • dp: Reduce property search allocations 30fa159
  • Improve xaml generator performance cfe3418
  • Reduce allocations during inherited properties propagation b4e9159
  • Remove DisplayClass in DependencyProperty.GetMetadata() 168f528
  • remove reflection usage when parsing color names 89bda71
  • memory: Fix datacontext propagation on precedence level change 4f7300a
  • Remove string allocations from method Colors.FromArbg 5f28dde
  • WindowManager: Add SetPropertyNativeFast binding b080921

BREAKING CHANGES

  • winappsdk: This PR removes unavailable types and members from the WinUI variant of Uno. Those members were present in early versions of WinAppSDK, and are not implemented in Uno.
  • assets: The ms-appx:/// specifier for libraries introduced in Uno Platform 4.6 was incorrectly lower-casing the library name. This change now uses the original name used by the library, which is the AssemblyName property of the library hosting the assets.

Bug Fixes

  • Add missing CSS class for GTK TextBoxView 3cfdafd
  • Avoid setting intial PasswordRevealState for plain TextBox 9344aed
  • AdaptiveTrigger: AdaptiveTriggers precedence 05041e2
  • android: Rely on actual string comparison and not string reference 0d74cb3
  • ItemsControl: ContentControl at the DataTemplate root should keep bindings 6542c27
  • ItemsControl: Don't clear content on IsContainerFromTemplateRoot 7c9c6c2
  • ItemsControl: Ensure Content property is cleared when is not own container e9b3372
  • listView: Fix add/remove not able to re-use container 4e978a6
  • pointers: Pointers are not bubbling through list view on iOS f111ba3
  • targetBitmap: RenderTargetBitmap cannot be re-rendered on canvas on iOS and macOS 5298e1d
  • xamlreader: Ensure adding properties on an explicit property reports an error 83e5279
  • XamlReader: Apply static resources before evaluating element names 3481229
  • XamlReader: parsing of Rect type property f6adcb5
  • Add missing PRIResource in default library template 0068ec5
  • Add missing PRIResource in default template e8c03c2
  • Adjust support for single-instance generator 864a27e
  • Correctly default to "all files" in WPF FileOpenPicker 783c7b8
  • enable feature only for Android c9fccbe
  • Enable support for ContentDialog in Uno Islands 693c244
  • Failing Lamp PR 283bdd1
  • Fallback to fuzzy matching properly d9f53df
  • Fix case sensitivity of FontWeight 0beeb75
  • Fix ObjectDisposedException crash in Geolocator on Android 2af054e
  • Fix possible collection changed while enumerating in EVP propagation 5bc413a
  • Fix x:Bind code generation for statics 21d59b4
  • Fix XamlType lookup to correctly consider PreferredXamlNamespace 2b5fba8
  • GetCulturesHierarchy loop on invalid CultureInfo d3942bb
  • GTK TextBox selection 5efdac4
  • Handle UnoXamlHostBase end of app lifecycle gracefully 6a3b198
  • Properly check Lamp support f6d08bd
  • CameraCaptureUI: Fix crash on net6.0+ 239cc51
  • midi: Tentative for android recursion issue 643c498
  • tooltip: Adjust initial propagation of the DataContext 55c9d48
  • Add workaround for net7.0-android issue 2c8f90e
  • Address review 2a5c571
  • Avoid processing GTK events before dispatching 293c310
  • Avoid text modification after TextChanged is raised f5729d9, closes #6289
  • better comments e3d9e47
  • bump minimum macOS version for SampleApp c506cde
  • Disallow ComboBox popup under translucent status bar 391ae8e
  • Don't set UnoRemoteControlHost when running inside VS Windows 9851312
  • Ensure TextChanging is raised repeatedly when TextChanged handler modifies 7e4775c
  • Include System.Memory fix for Xamarin.iOS projects e203684
  • Position the AutoSuggestBox popup while taking the keyboard into account e1fbbe1
  • refresh Panel layout when size changes db521c7
  • Remove GuardBand on GTK HW renderers to avoid visual glitches around clipping b748563
  • Show an actionable error message on SDK mismatch ce24b5a
  • Use culture invariant float parsing 019bd9d
  • android: Ensure that DependencyObject.Parent is set when adding a control to its parent 5126310
  • appxaml: Adjust ability for arbitrary app class name bf06dd5
  • Binding: Adjust binding to indexer based on expression parameter 38e63af
  • ContentPresenter: Reset DataContext override on null Content 1e66781
  • deque: Fix memory leak on clear 2dda57b
  • gtk: Ensure that harfbuzz is eagerly loaded to avoid system versions interference 84b3ad6
  • ios: LVI layouting 16293bb
  • ItemsControl: Ensure containers are properly cleaned up in ItemsControl and ListView 528c4a1
  • ListView: ios lv snap rubber-banding e0b48e1
  • localization: avoid using deprecated property 94159ac
  • skia: Correctly handle SolidColorBrush opacity in inlines 8b05a85
  • templates: Update Microsoft.WindowsAppSDK in templates e3bb671
  • templates: Use UTF8 for template files a802808
  • VirtualizingPanel: Adjust for nullability constraints ac0858d
  • XamlGenerator: Ignore surrounding whitespace for LineBreak 0ddd93b
  • xamlhost: Ensure proper render surface initialization 0405a16
  • RecordAllTestsCommand 4f12c88
  • Remove DependenciesInitializer 37f8dbd
  • Restore ElevatedView support for WinAppSDK 1e1a003
  • Show error message when incompatible winappsdk to net7.0 with uno is found b0d55de
  • XamlReader: Ignore surrounding whitespace for LineBreak 2b40f26
  • restore midi enumeration sample 0f7e275
  • xaml: Ensure generator indempotence dcafe81
  • skia.gtk launch config to use .NET 7 f787bd4
  • wasm debug launch config to use chrome type 9a3ff9e
  • **a...
Read more

4.7.37

01 Feb 19:17
97fca8e
Compare
Choose a tag to compare

This is a service release for Uno 4.7, which includes fixes such as:

  • Updated migration steps for 4.6 and 4.7 (backport #11077)
  • .NET 7 Android AOT Fixes (backport #11063)
  • Templates adjustments with :
    • The introduction of App.cs and AppResources.xaml to give access to the class library (#11085)
    • Linux build fixes (#11078)
    • Intellisense fixes for VS 2022 (#11078)
    • Temporarily disabled AppKit template until upstream support is fixed (#11116)
  • Fixed transitive assets not included in dotnet publish output (backport #11057)
  • Single project targeting optimization documentation (#11126)

Full Changelog: 4.7.30...4.7.37

4.7.30

26 Jan 20:37
Compare
Choose a tag to compare

Our first release of 2023 is ready and brings over 230 new features and bug fixes, most notably introducing a new project template, improving performance across all platforms supported by Uno Platform and Shared Fonts.

Here are some highlights of the release:

  • An updated project template which uses a Class Library instead of a "Shared Project"
  • Support for Shared Fonts assets, which is removing platform specific steps
  • Support for ms-appx:/// Uris Images in library assets
  • Support for AppointmentStore (Android) by @pkar70
  • XAML Trimming improvements (e.g. 33% in the Calculator app)
  • Support for ISelectionRange
  • .NET 7 performance improvements with JSImport/JSExport
  • Markup extension in Style Setter
  • Readonly TextBox selection support
  • .NET Native AOT support for the Skia GTK and Framebuffer heads
  • Framebuffer fixes for 32 bits depths
  • Android interop performance improvements

More details can be found in our blog post!

See below for the complete changelog.


Features

  • fonts: Add support for fonts in Assets 67f91ec
  • fonts: Add support for symbols font uri override 026c7fc
  • notimplemented: Update error messages to include a link for not implemented APIs 2dc18e0
  • xamlgen: Add support for debugging information, refactor BaseUri location fb3a55e
  • xamlparser: Adjust support for relative Uri parsing to enable contextual image loading 8b4c228
  • Add AutoPtr/StructPtr to TSInteropMarshaller 553f390
  • Add linker attributes ee01391
  • Add platform tags for Linux and Cloud on Uno templates 55ee8d0
  • Add WinRT interop methods d6e9b26
  • Adhere to HorizontalOffset and VerticalOffset 3f687ab
  • Adjust metadata update agent for explicit updates afc258e
  • Android Calendar (AppointmentStore), with struct (for all platforms) d641eaf
  • Android Calendar, Reminder column a4b9c45
  • Annotate Accelerometer 7ec2bdf
  • Annotate Gyrometer 122744d
  • Annotate LightSensor d8ef246
  • Annotate Magnetometer 760d7b1
  • Branded Item Templates a9b79b9
  • Improve corner radius accuracy on Android dc358f2
  • Initial focus on ContentDialog 91cd6f1
  • Initialize runtime exports at startup 83f5da7
  • ISelectionRange 83867cb
  • Load Samples app Pages within Frame 913da44
  • NeedsFrame porperty for SampleAttribute eacb4a0
  • Preserve types conditionally 5d88cf7
  • RectangleClip 35a8e98
  • StorageFileHelper ca2f177
  • Support custom markup extension in Style Setter 95bca12
  • Support for TextBox and PasswordBox clipboard methods f42b59c
  • TextElement.XamlRoot f4fd1b5
  • droid: enable copy from readonly TextBox 85ba608
  • gtk: Add support for .NET Native AOT 8d9ff09
  • template: Move to single location projects 023502f
  • Warn when Window constructor is used in Uno Platform targets 221f061
  • droid: add property for native behaviour a8ed9ea
  • Use RectangleClip for rounded corner border 0f71961

Performance Improvements

  • Skia: Skip border shape creation with empty area, avoid generating border with empty thickness 0ed6b6f
  • trim: Allow for ExpandoObject and DynamicObject to be linked out base on non-uno uses 7165749
  • trimming: Break static dependency on FlyoutBase 006ec63
  • trimming: Remove duplicate resource files 4e10391
  • wasm: Enable trimming for external drag and drop 7dbab4f
  • WindowManager: Add ArrangeElement binding 927ab11
  • WindowManager: Add CreateContentNativeFast binding 406c5e2
  • WindowManager: Add DestroyViewNativeFast binding 31233d7
  • WindowManager: Add MeasureViewNativeFast binding 58bd823
  • WindowManager: Add SetAttributes binding 4089821
  • WindowManager: Add SetElementTransformNativeFast binding 89d6b2b
  • WindowManager: Add SetPointerEventsNativeFast binding 6c33537
  • WindowManager: Add SetStylesNativeFast binding 5b28b35
  • WindowManager: Add SetStyleString bindings 1088eee
  • WindowManager: Add SetVisibilityNativeFast binding 523230f
  • Accelerometer JSImport bindings cd0bf46
  • Adjust IsLayoutRequested interop on arrange b41bac4
  • Adjust RichTextBox, MenuFlyout and TextBox trimming a9d1394
  • Cache textblock static native properties 4fdef8c
  • Geolocator JSImport bindings f662939
  • ImplementedRoutedEvents evaluated at compile-time via a source generator f2b18d9
  • Misc linker hints updates e927734
  • Reduce allocations in RegisterCustomScheme 6ad7b7c
  • Reuse java strings instances in TextBlock 0164ed0
  • Reuse radii arrays c74ff5a
  • Specialized binding for BorderLayerRenderer.GetOverlayDrawable() e4e87de
  • Specialized binding for Brush.GetBackgroundDrawable() 0adc2ea
  • Specialized binding for UIElement.AdjustCornerRadius() 6d16f8a
  • use a ref inside the new array and reduce code size af90eb7
  • Use records instead of record structs for large SG models 026dfd9

Bug Fixes

  • assets: Use orginal library name casing for ms-appx:/// uri 73e0145
  • flyout: XamlRoot not implemented 2dbc661
  • fonts: [Android] Adjust backward compatibilty for explicit AndroidAssets-included fonts 98acad0
  • fonts: Adjust font loading for ms-appx resources from assemblies 88be67d
  • gen: generate less local variables c1c1a20
  • gtk: Add more descriptive message on initialization failure 58f5bf6
  • image: Fail with a descriptive error on relative Uri loading 30ffcda
  • metadata: restore metadata updates for net6 or greater 4349883
  • nuspec: Remove Mono.Cecil 5892a1e
  • reg: Adjust UnoHasLocalizationResources metadata dd3d179
  • reg: Include explicitly specified fonts in info.plist for backward compatibilty 9204b8f
  • reg: Update symbols after ms-appx:/// casing update 26ba9bb
  • remotecontrol: Don't fail on multi-targeted projacts loading 634febb
  • remotecontrol: Don't force InterdemediateOutputPath for metadata updates ddf9c1b
  • remotecontrol: Ensure generators run after a referenced project file update db174a8
  • remotecontrol: Explicitly await all connection tasks to avoid unobserved tasks exceptions 65dee61
  • added not implemented method for Win and UWP d2a1d65
  • cleaned code 449f6cc
  • document uno.ui/uno.winui conflicts 8423f0a
  • identation 47fd961
  • included implementation for UWP/WinAppSDK and updated docs f5b36e3
  • Invisible invalid char c722537
  • moved helper to UI.Toolkit project 65043da
  • Native popup panel positioning on iOS ed00261
  • remotecontrol: Observe changes on ProjectReferences during HR sessions 0b5a801
  • resw: Adjust resources resolution for project references 7cb9abd
  • template: Adjust default language for Windows head 0efd543
  • template: Ensure x86, x64, arm64 windows head is deployable by default 2c1e21c
  • winui: Adjust WinUI build 7ff5cef
  • Adjust for 17.5 Preview 2 additional obsolete members on iOS a9dcd75
  • Avoid deflating layout slot rect by border thickness twice dd3631e
  • EffectiveViewport does not goes through native only elements 55205be
  • LayoutSlotWithMarginsAndAlignments is not correct on WASM due to BorderThickness 1bd2555
  • Remove incorrect UnoRuntimeIdentifier value 116ab96
  • Remove some duplicated namespaces e2da443
  • Remove unused generated code fb00901
  • trimming: Disable XAML trimming on mono+OSX/Linux 0442a1a
  • Pack analyzers in analyzers/dotnet/cs ba806d1
  • Remove unsupported TFMs from WinUI package 800b18d
  • removed redundant code and small refactors 8f794c0
  • renamed AssetsManager internal member 80f7974
  • Restore ProgressRing.xaml a4bbd3a
  • Set XamlRoot on Popup if not set for Uno.UI bce4b14
  • skia target a79184a
  • Support for custom markup extension in VisualState Setter eb0f7e9
  • CI: TakeScreenshot on Android b026c4b
  • templates: Only build net6.0-windows10.0.18362 on Windows 55cabb4
  • uap: Fix generators should not run under uap builds 26c6772
  • ToolTip not styled correctly 1d3473c
  • updated compiler directive for windows implementation 27015f6
  • Use executing assembly path for InstalledPath on Skia 72de4e3
  • animation: forever animation not repeating from default value 5f3ea8e
  • dependencyobject: Clear binding on ClearValue 9b2f394
  • dispatcherqueue: Use proper CheckThreadAccess/HasThreadAccess behavior 7aa064d
  • DispatcherQueueTimer: [Wasm] Ensure ticks are raised on the dispatcher c7f011a
  • dotnetnew: Adjust Server template compilation conditionals 1671dcd
  • embeddedresources: Restore proper AssignTargetPaths/AssignLinkMetadata for EmbeddedResource LogicalName metadata 1cb346c
  • framebuffer: Restore 32 bits color format 533ecf0
  • ios: animation stopped when app resumes from background 8e06564
  • perf: Don't include pdbs by default for xamarin targets in nuspec 1802e9d
  • reg: Add missing embedded resource in vsix 2022 f29240c
  • reg: Add missing generic and server projects to mac filter d6e2a96
  • reg: Adjust dotnet new unoapp parameters 093f3f5
  • reg: Adjust for XAML Trimming cross-runtime libraries build before Uno 4.6 e83fa35
  • reg: don't raise XA0101 72286c3
  • reg: Remove duplicate font asset fbe4ab6
  • reg: Restore multi-folder project structure a6ef125
  • reg: restore xaml trimming for net5 or below d537147
  • SetStyleString: Add missing parameter 0944535
  • Skia: Initialize DisplayBlock text in TextBoxView 80a2ac1
  • xamlreader: Process members on top-level resource dicitonaries 732d001
  • XamlReader: Fix invalid Windows.UI lookups c840727
  • Add partial keyword to CustomControl.cs at TemplateControl 5a6fb00
  • added caching for Android and Wasm assets 64dc566
  • added compilation constraint for netstd f0d06da
  • Attempt to fix possible crash when using GCColor 7a9c89e
  • Avoid creation of unholded ref of CGColor fdd52d9
  • ci targets for MacO...
Read more

4.6.19

04 Nov 00:16
3c308bb
Compare
Choose a tag to compare

Today we are announcing support for .NET 7. Our sixth release of 2022 is a huge step towards creating the most productive platform for building .NET-based applications which run everywhere.

For more about the highlights, such as core .NET 7 support, Library Assets, SVG Support, Android 13, the new WebAssembly Bootstrap 7.0 and ASP.NET Core Hosting Project, head to our blog post!

Community Shout Out!

Our contributor community just passed 400 contributors across all our repositories – be it the core UI one, documentation, or gallery.

Here are some of our contributor's updates:

Big shout out to all our new contributors who came during our Hacktoberfest initiative, helping make our Gallery loaded up with new samples.

Features

  • assets: Adds support for content assets in NuGet and transive project refs (c39af78)
  • Template: Add manifest.json to WASM template (9b802c5)
  • Template: Make manifest.json optional (572c991)
  • xBind: Enhanced support for x:Bind casting expressions (4521b63)
  • Add support for attached properties localization (e726e39)
  • Add support for VSIX .NET framework selection (f38716d)
  • Default to C# latest on UWP app solution template (ad708aa)
  • WASM: NativeOrientation property support (83382c3)
  • Add documentation for LightSensor (9cf7986)
  • Add UI Test template for VSIX (7ca050b)
  • Aligned icon font (c412d01)
  • Automatic docs spell-checking and associated fixes (1ba4d9a)
  • Build for wasm/skia net7 (7e899a2)
  • CallLog implementation for Android (023a029)
  • ElevatedView unification on Android (ccf296c)
  • ElevatedView WASM unification (ebed703)
  • Port ColorPicker.Orientation feature from WinUI (738facc)
  • Support for SelectionHihglightColor on Skia (890f2d4)
  • Support for SVG rasterization (c8bce1c)
  • Support scaled logo asset as icon on Skia (e3aa7fb)
  • SVG rendering on iOS and macOS (3610d08)
  • SVG support on Android (82c0ccc)
  • SVG vector rendering on on Skia (bb941b7)
  • hosting: Add support for ASP.NET Core hosted WebAssembly app (ca382fc)
  • TextBox: Android selection and placeholder color (14854a7)
  • TextBox: iOS selection and placeholder color (e1494e2)
  • TextBox: WASM selection and placeholder color (3d07dba)
  • WASM: Support setting the screen orientation (43bed26)
  • xbind: Add pathless casting support (21f12bc)
  • xBind: Add attached properties path support (290a52c)
  • Mark SelectionHighlightColor implemented on PasswordBox (9bad3e0)
  • Support for CoreApplication.Exit and Exiting (dfbaf17)
  • XamlSourceGenerator tracing (aaa3a41)
  • xamlreader: Support CustomResource (c9d011c)

Bug Fixes

  • MenuBarItem: Removed invalid cast (4370f0f)
  • add markdown code fence by request (0c09220)
  • Adjust image scale logic to fallback to higher DPIs if lower not available (88af9bc)
  • Ensure proper error reporting when a WinAppSDK project references Uno (d92eb5f)
  • Ensure reusability of ImageSource (6b08dd7)
  • Ensure ShowAsync returns if popup is forcibly closed (368f496)
  • Ensure Xamarin.iOS target is deployable when Mac Host is connected (fce6773)
  • Hide invalid HTML img elements (e8547ec)
  • Make horizontal scrolling in RefreshContainer on Android more reliable (1774a3a)
  • Nullable build errors on iOS (bd336e7)
  • Reference Bootstrap.Server package for Server project (0297d51)
  • remove unnecessary inline code snippet (e9a7389)
  • slnf referencing non-existing project (7cb2be0)
  • BindableTypeProvidersGenerator: Generate suppressions (67dbdba)
  • ContentDialog: Handle back button being pressed (17633b7)
  • DependencyObjectGenerator: Handle nested classes properly (d0b2734)
  • dotnetnew: Align WinUI templates to use the same as the VSIX (079b755)
  • dotnetnew: Ensure Wasm and Skia runtime libraries are using the same name (2bedb82)
  • localization: Fix type conversion on attached property implicit localization (67b7e91)
  • logger: Ensure thread safety of LoggerFactory (6b563a6)
  • SamplesApp: Favorites list loading (419483a)
  • wasm: Adjust TS compiler dependency on CompileTypeScriptWithTSConfig (ab0e1d8)
  • XamlGen: Handle base type not specified in code-behind (8af10a0)
  • xBind: Adjust FallbackValue behavior to explicitly support setting null to the target (c1f8c19)
  • Avoid null-ref, fallback to VisibleBounds is XamlRoot is null ([b4ac3eb](jeromelaban@b4ac3eb4c4d3c579d86d9f0ce61...
Read more

4.5.9

14 Sep 15:48
Compare
Choose a tag to compare

The fifth release of 2022 brings innovation across all pillars of Uno Platform: UI, Toolkit, Extensions and Tooling.

In the process of this release, we implemented 230 features and bug fixes, as well as welcomed 4 new contributors to our open-source project. Thank you! For those of you who just want to jump into it, please update your Uno Platform NuGet package to the latest.

It’s a massive release, so for those who are in the rush, here is the TL;DR version: We added:

  • A major new feature - Uno Islands to help you modernize apps
  • Increased the breadth of our existing Linux support
  • Six new or refactored WinUI controls and brand new pull-to-refresh
  • Super easy way to Authenticate users with MSAL, OIDC, Web and Custom authentication providers via Uno.Extensions
  • Boosted Reactive extension
  • Added SafeArea, Input, Status Bar, Input, Control, TabBarItem Extensions and Badge support as part of Uno Toolkit
  • Released Preview 3 of our Uno Platform for Figma add-in with more customization options and performance updates.

Community Shout Out!

We wouldn’t be able to do what we do without the help from our great community – filing bugs and issues, and also helping with the core project by submitting Pull Requests. Our contributor community is now over 230 developers strong, and we just passed 7,000 stars on Git Hub, and passed 2,000,000 downloads on NuGet. Thank You.

Special Shout out for 4.5 release goes to Giuseppe Lippolis (AKA @workgroupengineering) for contributing a fix for RenderTargetBitmap, InMemoryRandomAccessStream, and a variety of quality of life updates.
Thank you to all the other contributors:

For more details about this release, head to our blog post.

Full release notes

Features

  • (iOS) Add enable corewindows events 7e98596
  • (iOS) Add expose Raise Events 384a94b
  • (iOS) Add KeyEvents Support MacCatalyst c6a8db8
  • (iOS) Add VirtualKey mapper 036f856
  • (maccatalyst) add keyup event support d63624b
  • (maccatalyst) bubble up key events to focused element 9ca702b
  • Add DataWriter.StoreAsync 331b8a9
  • Add GetPatternCore support for ButtonAutomationPeer 24f2d76
  • Add missing Acrylic brushes without WinUI 2.6 styles 6c3aa64
  • Add missing StaticResourceExtensions for VS intellisense 3af3e11
  • Add refresh indication support for non-mobile platforms 7aeee51
  • Add support for FrameBuffer DPI and scale computation e59df85
  • Add support for StaticResource loading inside a ResourceDictiomary e05bd32
  • Add the ability to define #pragma warning disable in generated code 9323607
  • Add the ability to disable _knownMissingTypes validation a783600
  • Add Windows.UI.Xaml.Hosting API contract 530c15f
  • Allow Android native visualizer theming d7494e5
  • Allow iOS native visualizer theming c3f46c1
  • Basic RefreshContainer on Android 78f88df
  • Basic RefreshContainer on iOS 9641599
  • Basic support for DesktopWindowXamlSource c8ce703
  • BitmapEncoder a194583
  • Find associated VisualTree and XamlRoot for multiple roots 6c09f4b
  • Handling full uri as callbackuri for ios/macos f6deb9e
  • Implement analyzer for deprecated WasmHttpHandler a211ce3
  • Improve automatic OpenGL/ES detection f614a88
  • Include repository path in Samples app title bar e5076f8
  • InMemoryRandomAccessStream e7743ab
  • Marking additional Markup interfaces as implemented 2dd5612
  • Port RefreshInfoProviderAdapter 4e7c22c
  • RefreshInfoProviders d513257
  • RefreshVisualizer 50d2f75
  • RenderTargetBitmap ba33ee0
  • Resolve managed path and use weak reference pooling for FontFamily.Loader.wasm f3ed46a
  • Skia WPF Runtime Tests and Snapshot Tests ecbac16
  • SoftwareBitmap 69a824c
  • Support for multiple XamlRoots 09764b2
  • Text input support in Uno Islands 786017b
  • Uno.UI.XamlHost deead11
  • UnoXamlHost for Uno Islands 12dffe8
  • Update InfoBar to latest MUX e9c6f29
  • Update Skia slnf with Xaml Islands projects c0304a3
  • Use dotnet SDK linker when available c20e368
  • Use NameProperty in Skia and WASM b33cda1
  • droid: ListView smooth scrolling 762c5e2
  • FrameBuffer: Add RGB565 color depth support e6e79e8
  • InMemoryRandomAccessStream: Implemented ReadAsync, WriteAsync, GetInputStreamAt, GetOutputStreamAt da2699c
  • mobile: use animation for LVB.ScrollIntoView a352416
  • IRefreshInfoProviderAdapter support b42106c
  • Targets with constants moved to an earlier stage. c73cb49
  • Updating WAB for Android CustomTabs 09102ea
  • Use in-app screenshots for android cdaeda4
  • WASM Font Preloading Support e869192
  • xaml: add support for raw numerical enum values 8723bed
  • XamlReader: Add support for ThemeResources and MergedDictionaries 7785828
  • WinUI Breadcrumb f379841
  • WinUI BreadcrumbBar 272a1d3
  • WinUI PipsPager 99305a4
  • WinUI RefreshContainer e88ca39
  • WinUI Slider / RangeBase / Thumb / TickBar 40e236f
  • Android: Allows for images to be read using GetFileFromApplicationUri. 5f76bc2
  • TextBlock: [Skia] Add hyperlink hit testing b0cac68
  • TextBlock: [Skia] Add support for TextAlignment.Justify and CharacterSpacing 80ca410
  • Xaml Island root 601a208

BREAKING CHANGES

  • Changing Time of TimePickerFlyout from UI doesn't preserve existing days, seconds, and milliseconds. To get the legacy behavior back, set FeatureConfiguration.TimePickerFlyout.UseLegacyTimeSetting to true.

  • On iOS, when running under the iOS Simulator, the MtouchExtraArgs property must include --registrar=static or the runtime will fail with the following message:

    Don't know how to marshal a return value of type 'System.IntPtr'.
    

    This validation can be disabled by setting the MSBuild property:

    <PropertyGroup>
       <UnoDisableValidateIOSStaticRegistrar>true</UnoDisableValidateIOSStaticRegistrar>
    </PropertyGroup>

    See #9430 for more details.

  • Native popups on Android were frequently causing problems with more complex controls like AutoSuggestBox and MenuBar. To aleviate these problems we are switching to use the unified managed popups everywhere instead. This may be breaking apps which depend on the native popups logic or layout.

  • This update adjust the name of android drawables, in order to have full path disambiguation. This also means that actual resource names now will be separated by "_" in place of the folder hierarchy. This is generally not a problem is the files are read using ImageSource.

Performance Improvements

  • Avoid Regex for indentation when possible 693c085

  • Enable CA1821 (Remove empty finalizers) 3669fee

  • Enable LINQ-related performance analyzers 6ae0751

  • Enable NetAnalyzers performance analyzers 5ebb6d9

  • Use .ContainsKey instead of .Keys.Contains (CA1841) 708d286

  • iOSmacOS: calls getter too many times 9891407

  • iOSmacOS: Reduce nfloat / float / double conversions 4c2e8c2

  • iOSmacOS: Simplify MeasureOverride and ArrangeOverride 707c5db

  • macOS: Avoid calling NSView.Layer getter more than once / method 3ced78d

  • macOS: Call Bounds propety only once inside FrameworkElement.Layout 02e629e

  • feat!: Implement TimePicker's SelectedTime/TimeChanged/SelectedTimeChanged 1563a5b

  • feat!: Stop using Android native popups by default d7dee36

  • fix(android)!: Retarget Android assets with path names d4308f1

Bug Fixes

  • AutoSuggestBox: Close suggestion list on losing focus 0da0671
  • gtk: [Linux] Ensure that missing libGLESv2.so does not break the runtime 5c61eeb
  • GtkHost: move window title assignment after App is initialized. 1e5fa80
  • pointers: Do not simulte enter/exit for "touch as mouse" on skia 7a3a090
  • pointers: Fix touch support on some specific skia devices (e.g. RPI) ace611f
  • SamplesApp: warning XA4216: AndroidManifest.xml //uses-sdk/@android:minSdkVersion '16' is less than API-19 1b1a2d1
  • skia: Fail safe on invariant culture c08b512
  • ToggleSwitch: add workaround for visual states 9078f8b
  • WaitForUnlockedFile: Break if we can acquire exclusive lock on file d026090
  • wasm: Expose FontFamilyHelper through Uno.UI.Runtime.WebAssembly 7ed2ae9
  • wasm: Invalidate TextBlock measure cache when a font successfully loaded f49af2a
  • Allow setting Selector.SelectedIndex value before it is valid when items are empty 232651d
  • Apply review c8ca870
  • Avoid refreshing Android RefreshContainer when not on top cc5fb7d
  • case-insensitive linker ref paths 8c5b0a6
  • Clip desired size to MaxWidth and MaxHeight ae2076f
  • ContentPresenter content alignment 5bf7a3c
  • Disable merging in uno debug builds, exclude Java.Interop for linking issues 4bf84f5
  • Don't fail on ...
Read more

4.4.5

28 Jun 20:59
Compare
Choose a tag to compare

Uno Platform 4.4 is our 4th release in 2022, keeping us on a once-in-six-weeks rapid release schedule we aim for. The release packs numerous UI and performance improvements across all target platforms. First, on the UI side you’ll be able to produce beautiful fluid animations on .NET Android, .NET iOS and Skia-based targets, as well as increase high-fidelity renderings of all your texts on Skia-based targets. Second, on the performance side we are including support for the most recent WebAssembly advances available in .NET 7 – Wasm Threading and Exception Handling. Lastly, we also enabled new input scenarios via GamePad API support and improved the default project templates.
In total we have implemented and resolved over 90 new feature requests and issues.

View the full announcement in our blog post.

Some of Highlights:

  • Skottie integration (MUX ProgressRing on all Skia targets and .NET 6 mobile targets) (@jeromelaban)
  • Overhauled Skia TextBlock rendering with HarfBuzz (Support for wrapping, rich formatting, etc...) (@mikernet)
  • dotnet new unoapp now uses .NET 6 and WinAppSDK (@jeromelaban)
  • The Skia.WPF project is now available as one project (no more .Skia.Wpf.Host project), and now supports .NET 6/C# 10 (@jeromelaban)
  • GamePad APIs (@MartinZikmund)
  • Experimental Wasm threads support (@jeromelaban)
  • Wasm Exceptions support (@jeromelaban)
  • Many small performance improvements for all platforms (@ebariche, @spouliot)

As always, thanks to our contributors:

You'll find below the full change log.

Features

  • lottie: Add support for AnimatedVisualPlayer on net6.0 mobile and Skia targets. f0a8ac9
  • Add the ability to set the Window background color 67f8ffe
  • implement CoreWindows.Bounds 41b21a3
  • Merge Wpf and Wpf.Host projects 3f82834
  • Move unoapp to unoapp-uwo f27c285
  • Move unoapp-net6 to unoapp-uwp-net6 d1b6ac2
  • Move unoapp-winui to unoapp-winui-xamarin 68dba9a
  • Move unoapp-winui-net6 to unoapp 1a0c349
  • BitmapImage: [Skia] Add support for ms-appdata, BitmapImage.ImageOpened/ImageFailed 639fac2
  • gamepad: GamepadAdded/Removed on Android a82cafa
  • Gamepad: GamepadAdded/Removed for WASM 1160c40
  • Gamepad: GamepadAdded/Removed on iOS, macOS dd0a1b2
  • Gamepad: GetCurrentReading on Android 96cd0bb
  • Gamepad: GetCurrentReading on iOS and macOS 2ce9933
  • Gamepad: GetCurrentReading on WASM 52dab51
  • TextBlock: [Skia] New HarfBuzz-based text rendering engine dcb83be
  • wasm: Add support for threads e53ca2f
  • Add WinUI 3 item templates d6a7c22

Performance Improvements

  • drawables: Generate resolver to avoid reflection at startup bab524b
  • iOS: Cache DisplayInformation properties a5919a8
  • iOSmacOS: Directly convert from Color to CGColor b9f8051
  • iOSmacOS: Remove dead code and reduce casts in Layouter 7b783b1
  • macOS: Avoid calling Subviews getter inside Dispose eff8fd7
  • macOS: Cache DisplayInformation properties 67e02bd
  • paintpool: Avoid unnecessary managed/unmanaged transitions d11d4e2
  • selectoritem: Use monotonic clock instead of DateTime.Now e8d9813

Bug Fixes

  • Adjust harbuzz initialization to avoid Gtk3 interference cc0b352
  • Never enable the interpreter on net6.0-macos 5c75735
  • Skia: [TextBlock] Fix rendering when font properties change 3dc5b2d
  • [Android] TextBox EmailSmtpAddress InputScope does not work ebb290a
  • [TextBlock] Prevent Text value overriding when it isn't necessary 3808c00
  • Adjust default timeout for vscode debugger 507b9c9
  • Adjust formatting in the vsix mobile template 4a96a92
  • Adjust net6 library template for default xaml includes a6e56ed
  • Adjust new net6 library from vsix 48ce808
  • Adjust solution filter for unoapp-net6 7741611
  • Align resource conversion for empty values 658b3f0
  • Allow explicit disabling of the browser context menu 6744488
  • AutoSuggestBox Reason with inconsistency 8d8686d
  • Avoid Layout property event subscription leaks 2f13d2c
  • Calculate SystemFocusVisual position relative to root element 996fd06
  • ChildrenInTabFocusOrderIterable skipping first element 908c1e4
  • Correct attribute argument for auto navigation 4b8a997
  • DataTemplateSelector should throw if container is null 4a296e4
  • Don't use GRGlInterface.Create to determine OpenGL availability 503d60b
  • Enable VerifyUIElementsInItemsSource test c802530
  • Ensure app is started after native WPF template is applied 08b3e0e
  • Gamepad readings improvements on WASM and Android 7036e6c
  • Invalid support check in OpenGLRenderSurface 3c1b5b8
  • Lower roslyn generation selection log message b85366b
  • Make Clipboard.GetContentAsync reliable 4762bb2
  • missing guarding leads to crashs under Android prior to API 23 97a88cb
  • Missing mobile project for unoapp 41e1059
  • NavigationViewTests waiting 7b4c596
  • Replicates the linker default behavior for xamarin.mac 8e69ea8
  • Use fully qualified name lookup for xClass resolution fa9f6b3
  • UWP Samples app runtime tests attempt to use DP from non-UI thread d656f03
  • codegen: Serialize XamlGenerator executions 38705eb
  • DatePicker: Ensure proper native picker readability when the system theme is overriden. 77b795b
  • dotnetnew: Fix incorrect restore in unoapp-winui f50e281
  • dotnetnew: Misc adjust unoapp-winui-net6 d77a1a4
  • expander: properly clip to bounds on expand/collapse 66cdc45
  • ItemsRepeater: Avoid ItemsSource and Layout memory leaks 9320a67
  • ItemsRepeater: FindFocusCandidate did not return focused child 6fcf1dd
  • macOS: Remove warning/usage about/of deprecated userSpaceScaleFactor f2b76cc
  • measure_dirty_path: recycled ItemsControl not re-measuring 6f87bb8
  • net6: Windows iOS build fails to package bundle resource properly dc6b864
  • pointers: [iOS] Fix frame id capping to uint.MaxValue (Breaks Drag and Drop after about 10 days of device uptime with latests version of iOS) 2a08809
  • skia: Add missing Harfbuzz dependencies for Wpf, Tizen and Framebuffer 260ae4d
  • skia: Adjust more Harfbuzz dependencies a7a6797
  • winui: Adjust path for manifest a318b3a
  • Reset NSObject InFinalizerQueue after calling ReRegisterForFinalize 79425c9
  • Sync system focus visual with the focused element on scroll 523a82c
  • TextWrapping="Wrap" does not seem to work for TextBox on Android 1727f40
  • try to fix broken initial nav 22d69aa
  • Using long path format for Attachment 99c410f
  • Validation for GL instance b1e50af
  • Window Title by Manifest in SKIA WPF and GTK 7081442
  • xbind: Ensure source updates update the target during a two-way binding 55d166f
  • TryFocusAsync on non-focusable elements 3e60ded
  • Turn Window Title by Manifest in SKIA 3665d46
  • reg: Add missing harfbuzz dependency e42bf4e
  • WebViewBehavior: nre 9aaa7e0

4.3.8

01 Jun 20:39
1c8cc58
Compare
Choose a tag to compare

Uno 4.3.8 is a service release for Uno 4.3.

What's Changed

  • Adjust new net6 library from vsix in #8898
  • C# intellisense improvements for VS Code in #8948
  • GTK Hardware acceleration fixes for Windows in #8943
  • Various improvements to dotnet new templates in #8950

Full Changelog: 4.3.6...4.3.8

4.3.6

24 May 14:56
579678b
Compare
Choose a tag to compare

Uno Platform 4.3 is here! The focus of this release was on enhancing our Figma plugin which generates your app XAML directly from Figma designs, Uno.Themes Material v3 update, as well as advancing Uno Extensions to help bootstrap your apps faster.

See our blog post to get all the details!

You'll also find updates for:

  • Visual Studio 2022 17.3 Preview 1 and .NET 6.0.300 Mobile GA support
  • Wayland support for Skia Gtk backend (Thanks @microhobby!)
  • Visual Studio 2022 Template Platform wizard
  • Grid Succinct syntax for WinUI
  • XAML MarkupExtension
  • NetworkInformation API support on Skia (@MartinZikmund)
  • BatteryReport and AggregateBattery (Thanks @pkar70!)

Read below for the full change log.

Features

  • [droid] BatteryReport and AggregateBattery c3be84d
  • Add VS 2022 .NET 6 template, split wizard e00079f
  • adding max textscale and usage 1a625e7
  • Allow runtime checks whether File System Access API file/folder pickers are available 4fc16bc
  • Avoid using Skia Host constructors with args 68a4f42
  • BTdevice structs ecfbbe1
  • Focus support in managed FlipView 58ea2f8
  • Implemented new grid succinct syntax. d433d2e
  • Implemented new WinUI Grid assigned ContentProperty syntax. ad7fa98
  • Implemented XamlReader support for ContentProperty syntax. 9f8d51d
  • Implemented XamlReader support for ContentProperty syntax. ab87f00
  • Implemented XamlReader support for succinct syntax. 8057b0c
  • Move ItemsSourceView implementation to base, support IReadOnlyList d13f6fb
  • NetworkInformation API support on Skia b341ba9
  • Prevent net6 mobile creation below 17.3 7dd340e
  • Window size for Mac Catalyst 5a65465
  • gtk: Add OpenGL ES support 883ab5b
  • ios: Add GetLocationManager 12dae4c
  • markup: initial parser context support d5976c6
  • MSAL: Added "Jwt" assembly to linker definition, to prevent linking-out this when using the MSAL package. 1494c67
  • Pass arguments to LaunchActivatedEventArgs on macOS 21e664b
  • some Background structs for all platforms 01e0a48
  • ValueSet dd54b5c

Bug Fixes

  • Adjust formatting in the vsix mobile template c7565a0
  • Adjust solution filter for unoapp-net6 a2f553a
  • docfx missing change with the last merge a2e5cd5
  • Lower roslyn generation selection log message a0c5f7c
  • dotnetnew: Fix incorrect restore in unoapp-winui 77ef022
  • dragdrop: Make sure to disable dragging on LV's ItemContainer 9e797ad
  • markup: custom markup in binding is missing parser context 4f71e44
  • markup: NRException when returning null from markup 8a1ef0a
  • net6: Adjust assets generation of iOS/Catalyst 7c8bcfd
  • net6: restore xamarin-like ios exception marshaling for performance 04cd0dc
  • template: Adjust versioning in vsix templates f1b5527
  • [SamplesApp] ImageSourceStream Error 522 Connection timeout 931d251
  • Adjust default plist values for net6 mobile targets 8fd4390
  • Adjust resources generation for net6.0-ios new targets eed7596
  • Apply workaround for VS Shared projects issue f2c59ac, closes #5007
  • enabling distant URIs for Lottie fcbe986
  • Fixed incorrect generation for xaml object binding with xaml object properties. 90208b3
  • missing rename NumberBoxTests 61c9d5e
  • Temporarily restore LoadActions 024c26d
  • samples: Rename dopes tests 650832e
  • SamplesApp: Mux Category 7fa2eab
  • skia: Restore original canvas state for Software renderer e861f6c
  • [SamplesApp] Missing Icon Resource d5c5038
  • Add GC configuration for all net6 mobile templates a2155bb
  • added feature for Android 0e09483
  • AutoSuggestBox.QuerySubmitted ChosenSuggestion should not be null 474d3ef
  • codegen: Don't warn on CA1001 by default (disposable fields) for generated code 1d4fb90
  • codegen: Enhance roslyn version detection bac02b6
  • Adjust for duplicate package references in 6.0.300 d862a96
  • E_RUNTIME_SETVALUE SampleContent not found 69de305
  • fail gracefuly on invalid PRIResource files 6498cc3
  • codegen: Enhance roslyn version detection ce9ef6e
  • fail gracefuly on invalid PRIResource files 2cd9ffe
  • filesavepicker: Avoid possible IndexOutOfRangeException on macOS de70392
  • iOS: Adjust for new nullable signature 52a04f6
  • macos: Use case-insensitive API to load images from bundle f21db05, closes #8666
  • net6: Restore partial support for MUX progressring 3a0ddf0
  • Add FrameworkReference to winui projects 56e0806
  • Adjust net6-winui dotnet new 9ccc9ad
  • Adjust wizard for VS 2019 464c34e
  • FileSavePicker does not return the picked file in Android 9be9dd1
  • Fixed AccessViolationException that occurs in GLibSharp.dll after storage picker interaction 2bd123f
  • Fixed AccessViolationException that occurs in GLibSharp.dll after storage picker interaction 3cdc26e
  • Fixed comments. d706e8a
  • Genertaion of native ctor 0d188da
  • ImageSourceUrlMsAppDataScheme NullReferencenceException on DataContext Changed e17e5b8
  • Improve IsApiContractPresent accuracy a2aef58
  • Invalid GUID parameter name in dotnet new template JSON 673b9b6
  • max scale factor works as intended on android 63b2944
  • MethodAccessException b2ea50d
  • nit 41ac436
  • NullReferenceException 70b26dd
  • PackageIcon a49f972
  • Reduce "Uno.UI is using Roslyn generators" message level b97733f
  • Reduce logging verbosity for remote control connection errors df9cca6
  • Reverted RowDefinition and ColumnDefinition changes. 81a64bd
  • some SamplesApp missing resource d574b86
  • iOS: Adjust for new nullable signature ec65c79
  • net6: [Android] Adjust for proper assets base path f653bf5
  • net6: Add supported platforms attributes for CA1416 1d04414
  • net6: Adjust keyboard location computation e569a04
  • net6: Adjust manual native ctors signature 1815b79
  • net6: Restore ElevatedView templated parent support 5a782ff
  • TextBox doesn't support the TextWrapping.WrapWholeWords enumeration value 8e6faab
  • The parent of FrameworkElement is always null in GenerateBitmap 9f890c9
  • typo 525660a
  • xaml typo b800a40
  • gtk: Fix OpenGL render surface flickering 6e6c158
  • net6: [iOS] Ensure current culture is set at Application startup ac58dce
  • net6: Auto include BundleResources, show excluded compile items 42c6eba
  • net6: Remove unused InvariantGlobalization configuration 6c1f1d3
  • skia: SKImageInfo.PlatformColorType is incorrect on macOS/arm64 ba2acc8, closes #8580
  • SourceGenerators: NativeCtorsGenerator will execute after XamlCodeGenerator 497bcbe
  • vsix: Don't fail if DTE build information cannot be found 9363ae3
  • Wasm: Changing TextBox.Text in code should reset the caret a05ca79
  • winui: implemented Window::DispatcherQueue 033ae9b

Performance Improvements

  • Remove LoadActions a8f2aec

  • skia: Reuse surfaces/bitmaps and reduce native calls f8efae7

  • fix!: Launch arguments should be separated by space 19ef842

BREAKING CHANGES

  • In UWP/WinAppSDK the launch arguments are separated by space only, whereas Skia targets used semicolon before.