2010-05-03 3 views
3

Je dois avoir Oui Non Annuler la fenêtre de confirmation dans mon application Silverlight. J'essaie d'utiliser une fenêtre pour enfants à cette fin. Mais this.Show(); n'attend pas que l'utilisateur donne son avis.Oui, Non, Annuler Confirmation dans Silverlight

Une aide?

Merci

PS: im nouveau à SilverLight

Répondre

5

Utilisez un formulaire enfant que vous réorganisez actuellement tout le code où Show est appelé: -

void SomeMethod() 
{ 
    var dialog = new YesNoCancelDialog(); 
    dialog.Closed += (s, args) => 
    { 
    switch (dialog.Result) 
    { 
     //Handle resulting user choice 
    } 
    } 
    dialog.Show(); 
} 
0

Si vous voulez attendre l'entrée d'utilisateur jusqu'à ce que l'application continue, vous devez penser à la mise en œuvre d'une boîte de dialogue modale, vous pouvez effectuer une recherche google pour beaucoup de nombreuses implémentations sur ce point, peu si vous voulez plus d'aide, je peux vous donner quelques conseils :)

15

Si vous seriez bien juste avec boutons OK et Annuler vous COU ld utilise aussi la boîte de message, même si elle n'a pas l'air si sophistiquée.

MessageBoxResult result = MessageBox.Show("Lorem ipsum doso mitus dasam ...", 
    "The title", MessageBoxButton.OKCancel); 

if (result == MessageBoxResult.OK) { 
    MessageBox.Show("You clicked OK"); 
} 
1

Vérifiez ce projet http://silverlightmsgbox.codeplex.com/. Il présente une implémentation simple mais présentable de plusieurs boîtes de message utiles, à savoir confirmation, erreur, info, entrée d'utilisateur, etc. et pourrait vous être utile. Bonne chance.

+1

Nice .. prêt à l'emploi dll sont toujours le rendre plus facile. à votre santé. – Vinnie

0

Si vous utilisez System.Windows.MessageBox, vérifiez que vous appelez .Show() sur le thread d'interface utilisateur. En outre, évaluez les arguments de MessageBox.Show avant de passer la fermeture à BeginInvoke, pour éviter les accès threads dangereux.

var message = MyUnsafeObjectAccess.Foobar; 
Deployment.Current.Dispatcher.BeginInvoke(() => MessageBox.Show(message)); // safe 
Questions connexes