8

Closed

WP7 Turnstile animation shows blank screen

description

I'm using Turnstile animation in my Windows phone application for page transition. If I click the back button too fast, then it shows a blank screen. I removed the turnstile animation and it works fine. Is this an issue with the toolkit? Do you guys have any fix for this issue?

file attachments

Closed Sep 21, 2012 at 9:20 PM by badrz
Doesn't repro anymore.

comments

Hades32 wrote Feb 8, 2011 at 10:04 AM

Same for me, with a different animation. :(
It happens for me when I trigger a new navigation while the transition animation hasn't finished yet. Is there a way to see if the animation has finished?

wrote Feb 15, 2011 at 3:57 PM

kiruthikumar wrote Feb 15, 2011 at 3:57 PM

I did a crude fix for this issue in TransitionFrame.cs - OnContentChanged method. I moved the below lines of code into oldTransition.Completed delegate and it is no longer showing the blank screen for me. Please let me know if this will break something else. I have attached the modified file for your reference.
                _useFirstContentPresenter = !_useFirstContentPresenter;
                newContentPresenter.Opacity = 0;
                newContentPresenter.Visibility = Visibility.Visible;
                newContentPresenter.Content = newElement;
                oldContentPresenter.Opacity = 1;
                oldContentPresenter.Visibility = Visibility.Visible;

wrote Feb 28, 2011 at 1:30 PM

Corzmentini wrote Feb 28, 2011 at 1:31 PM

I have this same problem with the Turnstile Control

wrote Jun 17, 2011 at 3:54 PM

wrote Aug 21, 2011 at 2:44 AM

wrote May 8, 2012 at 8:39 PM

QuinnDamerell wrote May 8, 2012 at 8:45 PM

I am the developer of Baconit and I think I am also having this bug quite often in my app. I have had a lot of users comment on having this happen when they go to view a link from Baconit. It seems to happen especially often when the user leaves a comment page to view a youtube video or some other resource intensive task and then returns to the app. I don't know if the app is necessarily getting tombstoned or not, but it does seem to happen more often when after the phone has done something quite intensive. I would really appreciate a fix for this, and I offer any help I possible can possibly give :)

wrote May 9, 2012 at 12:16 AM

wrote May 9, 2012 at 8:14 PM

wieser_software wrote May 19, 2012 at 9:31 AM

I'm seeing this problem too, when navigating back occasionally. Also, occasionally, it also ends up showing both the page I navigated from and the one I navigated to.

Removing the transition frame gets rid of the problem (but the transitions too).

wrote May 19, 2012 at 10:18 AM

wieser_software wrote May 19, 2012 at 1:55 PM

More Information:
I see this problem when navigating from a page with an exit transition.
If I'm very quick, I can navigate back to the page that's exiting before the exit transition completes.

I thought this was my error, so deferred enabling the navigation until after the new Page reported as loaded, however this is still the case.

As a result, my navigation goes like this seen from the Transition Frame when I navigate back from Page 2 to Page 1, then forward again to Page 2
OnNavigating:
e.uri.OriginalString=Page1, 
(sender as NavigationService).CurrentSource=Page2
This calls FlipPreseneters, which on return has:
  New.ContentPresenter=null, Old.ContentPresenter=Page2
ContentChanged is called: New=Page1, Old=Page2
NOW NAVIGATE BACK
OnNavigating:
e.uri.OriginalString=Page2
(sender as NavigationService).CurrentSource=Page1
This calls FlipPresenters, whichon return has:
New.ContentPresenter=Page2, Old.ContentPresenter=Page1

Next OnExitTransitionCompleted is called some time later
TransitionNewContent is called
ContentChanged is called: New=Page2,Old=Page1
the newTransition.Completed delegate fires
and CompleteTransition is called on Page2

Notice that CompleteTransition was not called on Page1, and that as a result, both content presenters are still alive.

wieser_software wrote May 19, 2012 at 3:26 PM

The crux of when this goes wrong is when in OnNavigating, _storedNewTransaction != null

If that's the case, it's going to fail.

I tried cancelling the navigation like this at the start of that handler:
if (_storedNewTransition != null)
{
// we haven't finished the last one yet. AARGH.
if (e.IsCancelable) e.Cancel = true;
return;
}

however that casued even more problems, as there's know way to know the navigation has been cancelled, and as a result, I can't re-enable my buttons.

wrote Sep 6, 2012 at 12:44 AM

wrote Sep 6, 2012 at 12:47 AM

wrote Sep 21, 2012 at 12:59 AM

wrote Sep 21, 2012 at 9:20 PM

wieser_software wrote Sep 21, 2012 at 10:12 PM

Closed because it doesn't repro anymore? When was it fixed?
Has it been fixed?

wrote Feb 22, 2013 at 1:51 AM

wrote May 16, 2013 at 12:34 PM