@@ -56,30 +56,57 @@ public void Wipe(TransitionerSlide fromSlide, TransitionerSlide toSlide, Point o
56
56
toStartY = - toSlide . ActualHeight ;
57
57
}
58
58
59
- // Old
60
- fromSlide . RenderTransform = new TranslateTransform ( fromStartX , fromStartY ) ;
59
+ // From
60
+ var fromTransform = new TranslateTransform ( fromStartX , fromStartY ) ;
61
+ fromSlide . RenderTransform = fromTransform ;
61
62
var fromXAnimation = new DoubleAnimationUsingKeyFrames ( ) ;
62
63
fromXAnimation . KeyFrames . Add ( new LinearDoubleKeyFrame ( fromStartX , zeroKeyTime ) ) ;
63
64
fromXAnimation . KeyFrames . Add ( new EasingDoubleKeyFrame ( fromEndX , endKeyTime , _sineEase ) ) ;
64
65
var fromYAnimation = new DoubleAnimationUsingKeyFrames ( ) ;
65
66
fromYAnimation . KeyFrames . Add ( new LinearDoubleKeyFrame ( fromStartY , zeroKeyTime ) ) ;
66
67
fromYAnimation . KeyFrames . Add ( new EasingDoubleKeyFrame ( fromEndY , endKeyTime , _sineEase ) ) ;
67
68
68
- // New
69
- toSlide . RenderTransform = new TranslateTransform ( toStartX , toStartY ) ;
69
+ // To
70
+ var toTransform = new TranslateTransform ( toStartX , toStartY ) ;
71
+ toSlide . RenderTransform = toTransform ;
70
72
var toXAnimation = new DoubleAnimationUsingKeyFrames ( ) ;
71
73
toXAnimation . KeyFrames . Add ( new LinearDoubleKeyFrame ( toStartX , zeroKeyTime ) ) ;
72
74
toXAnimation . KeyFrames . Add ( new EasingDoubleKeyFrame ( toEndX , endKeyTime , _sineEase ) ) ;
73
75
var toYAnimation = new DoubleAnimationUsingKeyFrames ( ) ;
74
76
toYAnimation . KeyFrames . Add ( new LinearDoubleKeyFrame ( toStartY , zeroKeyTime ) ) ;
75
77
toYAnimation . KeyFrames . Add ( new EasingDoubleKeyFrame ( toEndY , endKeyTime , _sineEase ) ) ;
76
78
77
- // Animate
78
- fromSlide . RenderTransform . BeginAnimation ( TranslateTransform . XProperty , fromXAnimation ) ;
79
- fromSlide . RenderTransform . BeginAnimation ( TranslateTransform . YProperty , fromYAnimation ) ;
80
- toSlide . RenderTransform . BeginAnimation ( TranslateTransform . XProperty , toXAnimation ) ;
81
- toSlide . RenderTransform . BeginAnimation ( TranslateTransform . YProperty , toYAnimation ) ;
79
+ // Set up events
80
+ fromXAnimation . Completed += ( sender , args ) =>
81
+ {
82
+ fromTransform . BeginAnimation ( TranslateTransform . XProperty , null ) ;
83
+ fromTransform . X = fromEndX ;
84
+ fromSlide . RenderTransform = null ;
85
+ } ;
86
+ fromYAnimation . Completed += ( sender , args ) =>
87
+ {
88
+ fromTransform . BeginAnimation ( TranslateTransform . YProperty , null ) ;
89
+ fromTransform . Y = fromEndY ;
90
+ fromSlide . RenderTransform = null ;
91
+ } ;
92
+ toXAnimation . Completed += ( sender , args ) =>
93
+ {
94
+ toTransform . BeginAnimation ( TranslateTransform . XProperty , null ) ;
95
+ toTransform . X = toEndX ;
96
+ toSlide . RenderTransform = null ;
97
+ } ;
98
+ toYAnimation . Completed += ( sender , args ) =>
99
+ {
100
+ toTransform . BeginAnimation ( TranslateTransform . YProperty , null ) ;
101
+ toTransform . Y = toEndY ;
102
+ toSlide . RenderTransform = null ;
103
+ } ;
82
104
105
+ // Animate
106
+ fromTransform . BeginAnimation ( TranslateTransform . XProperty , fromXAnimation ) ;
107
+ fromTransform . BeginAnimation ( TranslateTransform . YProperty , fromYAnimation ) ;
108
+ toTransform . BeginAnimation ( TranslateTransform . XProperty , toXAnimation ) ;
109
+ toTransform . BeginAnimation ( TranslateTransform . YProperty , toYAnimation ) ;
83
110
zIndexController . Stack ( toSlide , fromSlide ) ;
84
111
}
85
112
}
0 commit comments