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();
public ContentDialogClosingDeferral GetDeferral() { _deferral = new ContentDialogClosingDeferral(_owner); return(_deferral); }
/// <summary> /// Notifies the system that the app has finished processing the closing event. /// </summary> /// <param name="deferral">The requested <see cref="ContentDialogClosingDeferral"/>.</param> public static void CompleteWrapped(this ContentDialogClosingDeferral deferral) => Resolver.Complete(deferral);