Skip to content

Commit b1443b6

Browse files
committed
safer application of opening effect
1 parent 14f60a4 commit b1443b6

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

MaterialDesignThemes.Wpf/Transitions/TransitioningContent.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public TransitioningContent()
2626
{
2727
Loaded += (sender, args) => Run(TransitioningContentRunHint.Loaded);
2828
IsVisibleChanged += (sender, args) => Run(TransitioningContentRunHint.IsVisibleChanged);
29+
2930
}
3031

3132
public static readonly DependencyProperty RunHintProperty = DependencyProperty.Register(

MaterialDesignThemes.Wpf/Transitions/TransitioningContentBase.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ public class TransitioningContentBase : ContentControl, ITransitionEffectSubject
2323
private SkewTransform _skewTransform;
2424
private TranslateTransform _translateTransform;
2525

26+
private bool _isOpeningEffectPending = false;
27+
2628
static TransitioningContentBase()
2729
{
2830
DefaultStyleKeyProperty.OverrideMetadata(typeof (TransitioningContentBase), new FrameworkPropertyMetadata(typeof (TransitioningContentBase)));
@@ -51,9 +53,11 @@ public override void OnApplyTemplate()
5153
if (_skewTransform != null)
5254
RegisterName(SkewTransformPartName, _skewTransform);
5355
if (_translateTransform != null)
54-
RegisterName(TranslateTransformPartName, _translateTransform);
56+
RegisterName(TranslateTransformPartName, _translateTransform);
5557

5658
base.OnApplyTemplate();
59+
60+
RunOpeningEffects();
5761
}
5862

5963
private void UnregisterNames(params string[] names)
@@ -107,7 +111,12 @@ public TimeSpan OpeningEffectsOffset
107111

108112
protected virtual void RunOpeningEffects()
109113
{
110-
if (!IsLoaded) return;
114+
if (!IsLoaded || _matrixTransform == null)
115+
{
116+
_isOpeningEffectPending = true;
117+
return;
118+
}
119+
_isOpeningEffectPending = false;
111120

112121
var storyboard = new Storyboard();
113122
var openingEffect = OpeningEffect?.Build(this);

0 commit comments

Comments
 (0)