@@ -172,7 +172,7 @@ private void HandleSmokeLayer(ContentDialogWindow dialogWindow)
172172 popup . Child = UnderlaySmokeLayer . CustomSmokeLayer ;
173173 }
174174
175- AttachPopupLifecycle ( dialogWindow , popup ) ;
175+ AttachPopupLifecycle ( dialogWindow , popup , isSmokeLayer : true ) ;
176176 }
177177 private void HandleSystemBackdrop ( ContentDialogWindow dialogWindow )
178178 {
@@ -189,7 +189,7 @@ private void HandleSystemBackdrop(ContentDialogWindow dialogWindow)
189189
190190 backdropLayerCache = popup . Child as Border ;
191191 backdropLayerCache . OpacityTransition = UnderlaySystemBackdrop . OpacityTransition ;
192- AttachPopupLifecycle ( dialogWindow , popup ) ;
192+ AttachPopupLifecycle ( dialogWindow , popup , isSmokeLayer : false ) ;
193193 }
194194
195195 private void DisableOwnerEvents ( ContentDialogWindow dialogWindow )
@@ -213,12 +213,20 @@ private void DialogWindow_Closed(object sender, WindowEventArgs e)
213213 control . IsEnabled = true ;
214214 }
215215
216- private void AttachPopupLifecycle ( ContentDialogWindow dialogWindow , Popup popup )
216+ private void AttachPopupLifecycle ( ContentDialogWindow dialogWindow , Popup popup , bool isSmokeLayer )
217217 {
218- dialogWindow . Opened -= OnDialogWindowOpened ;
219- dialogWindow . Closed -= DialogWindow_ClosedPopup ;
218+ if ( isSmokeLayer )
219+ {
220+ dialogWindow . Opened -= OnDialogWindowOpened ;
221+ dialogWindow . Opened += OnDialogWindowOpened ;
222+ }
223+ else
224+ {
225+ dialogWindow . Loaded -= OnDialogWindowOpened ;
226+ dialogWindow . Loaded += OnDialogWindowOpened ;
227+ }
220228
221- dialogWindow . Opened += OnDialogWindowOpened ;
229+ dialogWindow . Closed -= DialogWindow_ClosedPopup ;
222230 dialogWindow . Closed += DialogWindow_ClosedPopup ;
223231
224232 void OnDialogWindowOpened ( object sender , EventArgs e )
0 commit comments