Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UWP App with .NET Native Compilation enabled fails w/ FadeToAnimation #22

Open
mzhukovs opened this issue Jan 31, 2020 · 0 comments
Open

Comments

@mzhukovs
Copy link

mzhukovs commented Jan 31, 2020

Only with .NET Native Compilation enabled, a UWP app that uses a FadeToAnimation storyboard on appearing on a grid fails when setting Opacity=0 at Duration=0:

        <xamanimation:StoryBoard x:Key="EntriesAnimation" Target="{x:Reference UserEntries}">
            <xamanimation:FadeToAnimation Opacity="0" Duration="0" />
            <xamanimation:FadeToAnimation Opacity="1" Duration="500" />
        </xamanimation:StoryBoard>

The above results in a crash. Note that the same technique (applying at Duration 0) works just fine with TranslateTo, e.g. this works:

            <xamanimation:StoryBoard x:Key="LogoAnimation" Target="{x:Reference Logo}">
                <xamanimation:TranslateToAnimation TranslateY="500" Duration="0" />
                <xamanimation:TranslateToAnimation
                    Easing="SpringOut"
                    TranslateY="0"
                    Duration="750" />
            </xamanimation:StoryBoard>

The fix for me was to instead just do only <xamanimation:FadeToAnimation Opacity="1" Duration="500" /> and set the Opacity="0" explicitly on the Target Grid.

Here was the error in the former case:

System.Private.Interop.dll!System.Runtime.InteropServices.McgMarshal.ThrowOnExternalCallFailed(int hr, System.RuntimeTypeHandle typeHnd) Line 1189 at f:\dd\ndp\fxcore\CoreRT\src\System.Private.Interop\src\Shared\McgMarshal.cs(1189)

System.ArgumentException HResult=0x80070057 Message=Value does not fall within the expected range. Source= StackTrace: StackTrace " at System.Runtime.InteropServices.McgMarshal.ThrowOnExternalCallFailed(Int32 hr, RuntimeTypeHandle typeHnd) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Interop\src\Shared\McgMarshal.cs:line 1189\r\n at __Interop.ComCallHelpers.Call(__ComObject __this, RuntimeTypeHandle __typeHnd, Int32 __targetIndex, Double arg0)\r\n
at __Interop.ForwardComStubs.Stub_22[TThis](__ComObject __this, Double value, Int32 __targetIndex)\r\n at Windows.UI.Xaml.IUIElement__Impl.Stubs.put_Opacity(__ComObject __this, Double value)\r\n at Windows.UI.Xaml.UIElement.put_Opacity(Double value)\r\n at Xamarin.Forms.Platform.UWP.VisualElementTracker2.UpdateOpacity(VisualElement
view, FrameworkElement frameworkElement) in
D:\a\1\s\Xamarin.Forms.Platform.UAP\VisualElementTracker.cs:line
518\r\n at
Xamarin.Forms.Platform.UWP.VisualElementTracker2.UpdateNativeControl() in D:\a\1\s\Xamarin.Forms.Platform.UAP\VisualElementTracker.cs:line 236\r\n at Xamarin.Forms.Platform.UWP.VisualElementTracker2.OnRedrawNeeded(Object
sender, EventArgs e) in
D:\a\1\s\Xamarin.Forms.Platform.UAP\VisualElementTracker.cs:line
409\r\n at System.EventHandler1.Invoke(Object sender, TEventArgs e)\r\n at Xamarin.Forms.VisualElement.BatchCommit() in D:\a\1\s\Xamarin.Forms.Core\VisualElement.cs:line 572\r\n at Xamarin.Forms.AnimationExtensions.HandleTweenerUpdated(Object o, EventArgs args) in D:\a\1\s\Xamarin.Forms.Core\AnimationExtensions.cs:line 274\r\n
at System.EventHandler.InvokeOpenStaticThunk(Object sender, EventArgs e)\r\n at System.EventHandler.Invoke(Object sender, EventArgs e)\r\n at Xamarin.Forms.Tweener.b__22_0(Int64 step) in D:\a\1\s\Xamarin.Forms.Core\Tweener.cs:line 92\r\n at System.Func2.Invoke(T arg)\r\n at
Xamarin.Forms.Internals.Ticker.SendSignals(Int64 step) in
D:\a\1\s\Xamarin.Forms.Core\Internals\Ticker.cs:line 136\r\n

at Xamarin.Forms.Internals.Ticker.SendSignals(Int32 timestep) in
D:\a\1\s\Xamarin.Forms.Core\Internals\Ticker.cs:line 125\r\n

at
Xamarin.Forms.Platform.UWP.WindowsTicker.RenderingFrameEventHandler(Object
sender, Object args) in
D:\a\1\s\Xamarin.Forms.Platform.UAP\WindowsTicker.cs:line 25\r\n
at System.EventHandler1.Invoke(Object sender, TEventArgs e)\r\n at __Interop.Intrinsics.HasThisCall__51(Object __this, IntPtr pfn, Object arg0, Object arg1)\r\n at __Interop.ReverseComStubs.Stub_41(Object __this, Void* unsafe_sender, Void* unsafe_args, IntPtr __methodPtr)" string

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant