Comment afficher une boîte de message dans les applications Windows 8 en utilisant c # comme appeler MessageBox.Show () dans Windows Phone 7?
La classe MessageDialog devrait répondre à vos besoins.
MessageDialog msgDialog = new MessageDialog("Your message", "Your title");
//OK Button
UICommand okBtn = new UICommand("OK");
okBtn.Invoked = OkBtnClick;
msgDialog.Commands.Add(okBtn);
//Cancel Button
UICommand cancelBtn = new UICommand("Cancel");
cancelBtn.Invoked = CancelBtnClick;
msgDialog.Commands.Add(cancelBtn);
//Show message
msgDialog.ShowAsync();
Et vos rappels
private void CancelBtnClick(IUICommand command)
{
}
private void OkBtnClick(IUICommand command)
{
}
P.S. Vous pouvez suivre ce tutoriel pour plus.
Mon moyen le plus simple, pour les boîtes de message de type confirmation:
var dlg = new MessageDialog("Are you sure?");
dlg.Commands.Add(new UICommand("Yes", null, "YES"));
dlg.Commands.Add(new UICommand("No", null, "NO"));
var op = await dlg.ShowAsync();
if ((string)op.Id == "YES")
{
//Do something
}
Pour plus simple, il suffit d'afficher le texte du message et le bouton OK. Utilisez l'espace de noms Windows.UI.Popups
. Créez une méthode messagebox()
que cette méthode devrait être
using Windows.UI.Popups;
protected async void messageBox(string msg)
{
var msgDlg = new Windows.UI.Popups.MessageDialog(msg);
msgDlg.DefaultCommandIndex = 1;
await msgDlg.ShowAsync();
}
Puis appelez cette méthode dans votre code comme
messageBox("Unexpected error held");
Friandise supplémentaire:
Il apparaît dans une application Windows moderne que MessageDialog n'apparaîtra pas avant que votre application effectue son appel Window.Current.Active (), ce qui se produit généralement dans la méthode OnLaunched () de la classe de l'application. Si vous essayez d'utiliser MessageDialog pour afficher quelque chose comme une exception de démarrage, il est important de le garder à l'esprit.
Mon test indique que MessageDialog.ShowAsync () peut attendre, mais sans afficher la boîte de dialogue si Window.Current.Active () n'a pas encore été appelé, donc, du point de vue de l'exécution du code, tout se passera bien, mais pas encore est affiché.
Si l'objectif est d'afficher une exception lors du démarrage, je peux penser à deux options (il peut y en avoir plus).
Capturez les informations sur l'exception, puis attendez de l'afficher après Window.Current.Activate (). Cela peut fonctionner si l'exception est telle que l'application peut la récupérer et continuer au démarrage. Par exemple, s'il y a une erreur lors de la restauration des informations d'état sauvegardées, l'application peut vouloir le signaler à l'utilisateur, puis continuer à démarrer comme s'il n'y avait pas d'état sauvegardé.
Si la situation est telle que l'application lève les mains et a l'intention de se terminer, mais veut informer l'utilisateur de ce qui s'est passé, une autre solution pourrait consister à avoir un bloc de code dédié séparé/une méthode permettant de brancher un nouveau bloc vierge à Windows. .Current.Content, l'active à l'aide de Windows.Current.Activate (), puis appelle MessageDialog.ShowAsync (). Je n'ai pas expérimenté cette approche, donc je ne sais pas si d'autres conditions doivent également être remplies, comme le chargement éventuel d'une page dans le cadre.
utiliser pour une page comme:
private async void AppBarButton_Click(object sender, RoutedEventArgs e)
{
Windows.UI.Popups.MessageDialog a = new Windows.UI.Popups.MessageDialog("hello this is awth");
await a.ShowAsync();
}