Fuse (beta) release #0.5.3166

This release contains several new features and fixes to the libraries, as well as fixes to the tool:

Fuse Libraries

Navigation Changes

  • ITitleNode, TitleChanged, and related title events have been removed. Instead the resource system should be used with a CurrentPageBinding.
  • IPage has been removed as nothing used it or called its functions
  • NavigationContext can now be set on any node and establishes the context for that tree
  • Navigation.TryFind now returns an INavigationContext, not a Navigation
  • CanGoBack trigger renamed WhileCanGoBack
  • Fuse.Controls.IPageProgress moved to Fuse.Navigation.IPageProgress
  • If the same element is added again to HierarchicalNavigation it will simply transition to that element now instead of pushing it on the top. This seems to better match the expected use of app navigation. To get the old behaviour set ReuseExistingNode="false" on the navigation.
  • TriggerAction.Perform was made protected, it should not be called directly. Use the PerformFromNode function.
  • A generic TriggerAction.TargetNode is available for all triggers now.

Shadow layout

  • the Element.IsLayoutInert boolean has been replaced with a LayoutRole enum. Use LayoutRole.Inert to replicate the old IsLayoutInert true setting
  • remove unused internal Element.LayoutHappened


  • CreatePixelFlat factories renamed CreatePoints
  • CreateAngular factories renamed CreateRadians
  • Attractor.SimulationType allows specifying which simulation type to use
  • Attractor.MaxSpeed is no longer available since not all simulation types support it
  • SmoothSnap.CreatePoints parameters have been tweaked to be a bit slower (this affects EdgeNavigation)
  • Attractor.TimeMultiplier can be used to increase or decrease the speed of the animation

Other changes

  • Renamed ProgressRange to ProgressAnimation to be consistent.
  • Removed some implementation details from the public API: DiscreteSingleTrack, DiscreteKeyframeTrack, SplineTrack, EasingTrack, IMixerMaster, Mixer



  • Added string Uno.Exception.StackTrace property. This is implemented in .NET and C++ targets, and will give you a string similar to System.Exception.StackTrace in .NET.
  • Uno.Exception.ToString() in C++ will now include the exception type name and stack trace in the returned string (similar to .NET behaviour).



  • Added Fuse.Native.Camera package

I test my app in this release and the performance is dramatically slow compared with the previous version. Now the app have many FPS drops! (In Android, IOS I cant compare because of the HTTP request problem…

Cristian Karmy: Sorry to hear that. We have however not received any other reports of this, and our testing hasn’t picked up any performance regression.

Can you please provide some more information? In what export targets are you experiencing the performance drops? Sounds like it is on desktop. What platform?

Can you please provide a test case for us to reproduce the problem?

I export in my Mac:


Target: Android

uno build --target=Android --run

And the device that I test my app is the Galaxy s4 with Android 5.0.1

Is hard to my reproduce the problem because my app have many pages and code behind. In the last release my app work smooth and perfect in the same device and specs.

The mayor problem is with the animation like WhileTrue and ScrollingAnimation. And I have a Page with 3 Horizontal scrollViewer that when I click inside of an item inside I GiveFocus and Trigger a WhileFocused (This have dramatically FPS drops).

My code Behind is with UNO.

Cristian : Thanks for reporting the performance issue.

We have now found the reason for the FPS drops and a fix will roll out in the next release :slight_smile:

Great! :slight_smile: