Skip to content

Commit a4e0e16

Browse files
committed
Override OnContentChanged for DropShadowPanel and wire unwire into content's size changed there.
1 parent f6ec0f2 commit a4e0e16

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

Microsoft.Toolkit.Uwp.UI.Controls/DropShadowPanel/DropShadowPanel.cs

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,16 +70,34 @@ protected override void OnApplyTemplate()
7070
ElementCompositionPreview.SetElementChildVisual(_border, _shadowVisual);
7171
}
7272

73-
var content = this.Content as FrameworkElement;
73+
ConfigureShadowVisualForCastingElement();
74+
75+
base.OnApplyTemplate();
76+
}
7477

75-
if (content != null)
78+
protected override void OnContentChanged(object oldContent, object newContent)
79+
{
80+
if (oldContent != null)
7681
{
77-
content.SizeChanged += OnSizeChanged;
82+
var oldElement = oldContent as FrameworkElement;
83+
84+
if (oldElement != null)
85+
{
86+
oldElement.SizeChanged -= OnSizeChanged;
87+
}
7888
}
7989

80-
ConfigureShadowVisualForCastingElement();
90+
if (newContent != null)
91+
{
92+
var newElement = newContent as FrameworkElement;
8193

82-
base.OnApplyTemplate();
94+
if (newElement != null)
95+
{
96+
newElement.SizeChanged += OnSizeChanged;
97+
}
98+
}
99+
100+
base.OnContentChanged(oldContent, newContent);
83101
}
84102

85103
private void OnSizeChanged(object sender, SizeChangedEventArgs e)

0 commit comments

Comments
 (0)