private void DeferredDialog_Click(object sender, RoutedEventArgs args) { DidCloseTextBlock.Text = "Not closed"; var dialog = new ContentDialog { CloseButtonText = "Close" }; ContentDialogClosingDeferral deferral1 = null; ContentDialogClosingDeferral deferral2 = null; var defer1Button = new _Button { Name = "Complete1Button", Content = "Complete 1" }; defer1Button.Click += (o, e) => { deferral1.Complete(); ResultTextBlock.Text = "First complete called"; }; var defer2Button = new _Button { Name = "Complete2Button", Content = "Complete 2" }; defer2Button.Click += (o, e) => { deferral2.Complete(); ResultTextBlock.Text = "Second complete called"; }; var panel = new StackPanel { Orientation = Orientation.Horizontal, Children = { defer1Button, defer2Button } }; dialog.Content = panel; dialog.Closing += (o, e) => { deferral1 = e.GetDeferral(); }; dialog.Closing += (o, e) => { deferral2 = e.GetDeferral(); }; dialog.Closed += (o, e) => { DidCloseTextBlock.Text = "Closed"; }; var dummy = dialog.ShowAsync(); }
void IContentDialogClosingDeferralResolver.Complete(ContentDialogClosingDeferral deferral) => deferral.Complete();