Skip to content

Commit 8f4e134

Browse files
committed
Merge branch 'master' of https://github.com/Tyrrrz/MaterialDesignInXamlToolkit into Tyrrrz-master
2 parents f0a9150 + c05e5df commit 8f4e134

File tree

2 files changed

+52
-13
lines changed

2 files changed

+52
-13
lines changed

MaterialDesignThemes.Wpf/Transitions/FadeWipe.cs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ public void Wipe(TransitionerSlide fromSlide, TransitionerSlide toSlide, Point o
2323
var zeroKeyTime = KeyTime.FromTimeSpan(TimeSpan.Zero);
2424
var endKeyTime = KeyTime.FromTimeSpan(TimeSpan.FromSeconds(Duration.TotalSeconds/2));
2525

26-
// Old
26+
// From
2727
var fromAnimation = new DoubleAnimationUsingKeyFrames();
2828
fromAnimation.KeyFrames.Add(new LinearDoubleKeyFrame(1, zeroKeyTime));
2929
fromAnimation.KeyFrames.Add(new EasingDoubleKeyFrame(0, endKeyTime, _sineEase));
3030

31-
// New
31+
// To
3232
var toAnimation = new DoubleAnimationUsingKeyFrames();
3333
toAnimation.KeyFrames.Add(new LinearDoubleKeyFrame(0, zeroKeyTime));
3434
toAnimation.KeyFrames.Add(new EasingDoubleKeyFrame(1, endKeyTime, _sineEase));
@@ -37,10 +37,22 @@ public void Wipe(TransitionerSlide fromSlide, TransitionerSlide toSlide, Point o
3737
fromSlide.Opacity = 1;
3838
toSlide.Opacity = 0;
3939

40+
// Set up events
41+
toAnimation.Completed += (sender, args) =>
42+
{
43+
toSlide.BeginAnimation(UIElement.OpacityProperty, null);
44+
fromSlide.Opacity = 0;
45+
toSlide.Opacity = 1;
46+
};
47+
fromAnimation.Completed += (sender, args) =>
48+
{
49+
fromSlide.BeginAnimation(UIElement.OpacityProperty, null);
50+
fromSlide.Opacity = 0;
51+
toSlide.BeginAnimation(UIElement.OpacityProperty, toAnimation);
52+
};
53+
4054
// Animate
41-
fromAnimation.Completed += (sender, args) => toSlide.BeginAnimation(UIElement.OpacityProperty, toAnimation);
4255
fromSlide.BeginAnimation(UIElement.OpacityProperty, fromAnimation);
43-
4456
zIndexController.Stack(toSlide, fromSlide);
4557
}
4658
}

MaterialDesignThemes.Wpf/Transitions/SlideWipe.cs

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,30 +56,57 @@ public void Wipe(TransitionerSlide fromSlide, TransitionerSlide toSlide, Point o
5656
toStartY = -toSlide.ActualHeight;
5757
}
5858

59-
// Old
60-
fromSlide.RenderTransform = new TranslateTransform(fromStartX, fromStartY);
59+
// From
60+
var fromTransform = new TranslateTransform(fromStartX, fromStartY);
61+
fromSlide.RenderTransform = fromTransform;
6162
var fromXAnimation = new DoubleAnimationUsingKeyFrames();
6263
fromXAnimation.KeyFrames.Add(new LinearDoubleKeyFrame(fromStartX, zeroKeyTime));
6364
fromXAnimation.KeyFrames.Add(new EasingDoubleKeyFrame(fromEndX, endKeyTime, _sineEase));
6465
var fromYAnimation = new DoubleAnimationUsingKeyFrames();
6566
fromYAnimation.KeyFrames.Add(new LinearDoubleKeyFrame(fromStartY, zeroKeyTime));
6667
fromYAnimation.KeyFrames.Add(new EasingDoubleKeyFrame(fromEndY, endKeyTime, _sineEase));
6768

68-
// New
69-
toSlide.RenderTransform = new TranslateTransform(toStartX, toStartY);
69+
// To
70+
var toTransform = new TranslateTransform(toStartX, toStartY);
71+
toSlide.RenderTransform = toTransform;
7072
var toXAnimation = new DoubleAnimationUsingKeyFrames();
7173
toXAnimation.KeyFrames.Add(new LinearDoubleKeyFrame(toStartX, zeroKeyTime));
7274
toXAnimation.KeyFrames.Add(new EasingDoubleKeyFrame(toEndX, endKeyTime, _sineEase));
7375
var toYAnimation = new DoubleAnimationUsingKeyFrames();
7476
toYAnimation.KeyFrames.Add(new LinearDoubleKeyFrame(toStartY, zeroKeyTime));
7577
toYAnimation.KeyFrames.Add(new EasingDoubleKeyFrame(toEndY, endKeyTime, _sineEase));
7678

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+
};
82104

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);
83110
zIndexController.Stack(toSlide, fromSlide);
84111
}
85112
}

0 commit comments

Comments
 (0)