web-dev-qa-db-fra.com

Comment afficher un message dans le Windows Store Apps?

Comment afficher une boîte de message dans les applications Windows 8 en utilisant c # comme appeler MessageBox.Show () dans Windows Phone 7?

27
user1547566

La classe MessageDialog devrait répondre à vos besoins.

26
JP Alioto
   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.

48

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
  }
12
Antonio Bakula

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");
8
Muhammed Mufees

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).

  1. 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é.

  2. 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.

2
Keith

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();
}
0
user5823144