2015-08-04 7 views
9

Quando uso l'applicazione di posta elettronica di Windows 10, quando aggiungo un account (impostazione-> account-> aggiungi account), sembra che venga visualizzata una finestra modale per scegliere un account. Cerco di utilizzare MessageDialog, ma non riesco a inserire alcun contenuto personalizzato.Come mostrare una finestra modale nell'app universale di Windows 10?

EDIT: questo è lo screenshot screenshot

è qualcuno sa come implementarlo o c'è qualche API può farlo?

Nota: Quando si apre questa finestra, non è possibile minimizzare/ingrandire/chiudere la finestra principale. Quindi, è decisamente una finestra modale.

risposta

5

Si può facilmente creare una nuova vista in questo modo, per esempio nel vostro App.xaml.cs:

public static async Task<bool> TryShowNewWindow<TView>(bool switchToView) 
{ 
    var newView = CoreApplication.CreateNewView(); 
    int newViewId = 0; 
    await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() => 
    { 
     var frame = new Frame(); 
     frame.Navigate(typeof(TView), null); 
     Window.Current.Content = frame; 

     newViewId = ApplicationView.GetForCurrentView().Id; 
    }); 
    var viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newViewId); 
    if (switchToView && viewShown) 
    { 
     // Switch to new view 
     await ApplicationViewSwitcher.SwitchAsync(newViewId); 
    } 
    return viewShown; 
} 

Per maggiori informazioni, date un'occhiata a quei due guide:

+0

I lo so, e ho provato, ma la nuova finestra non è una finestra modale. – tao

+0

@tao Bene, non hai chiesto una finestra modale. – Herdo

+0

Mi dispiace, l'app di posta sembra una finestra modale popup, sai come implementarla? Grazie! – tao

16

Non l'ho usato me stesso, ma credo che stai cercando ContentDialog api.

var dialog = new ContentDialog() { 
    Title = "Lorem Ipsum", 
    MaxWidth = this.ActualWidth // Required for Mobile! 
    Content = YourXamlContent 
}; 


dialog.PrimaryButtonText = "OK"; 
dialog.IsPrimaryButtonEnabled = false; 
dialog.PrimaryButtonClick += delegate { 
}; 

var result = await dialog.ShowAsync(); 

content dialog

guidlines MSDN per le finestre di dialogo: link

MSDN ContentDialog API: link