2009-10-14 9 views
2

J'utilise le code suivant pour afficher une boîte de dialogue de message dans ma demande:MessageDialog pas fermer

MessageDialog dialog = new MessageDialog(null, 
             DialogFlags.Modal, 
             MessageType.Error, 
             ButtonsType.Ok, 
             "An error occured: "); 
dialog.Run(); 

problème est le bouton OK de la fenêtre ne fait rien .... La fenêtre disparaît seulement quand j'appuie sur le bouton X dans le coin supérieur droit.

Des idées?

Répondre

5

Vous devez appeler dialog.Destroy(); après votre appel à dialog.Run();

1

Vous pouvez également brancher l'événement Response pour être averti d'un bouton clic:

var dialog = new MessageDialog (this, 
            DialogFlags.Modal, 
            MessageType.Info, 
            ButtonsType.YesNo, 
            "The Hulk could totally take Super Man"); 
    dialog.Response += (object o, ResponseArgs args) => { 
     if (args.ResponseId == ResponseType.Yes) { 
      Console.WriteLine("Yes clicked"); 
     } else if (args.ResponseId == ResponseType.No) { 
      Console.WriteLine("No clicked"); 
     } else if (args.ResponseId == ResponseType.DeleteEvent) { 
      Console.WriteLine("Dialog closed without clicking a button"); 
     } 
     dialog.Destroy(); 
    }; 

    dialog.Run(); 
+0

La seule solution qui fonctionne pour moi. dlg.Destroy() empêche même la boîte de dialogue d'apparaître. – Astronavigator