2011-12-27 4 views
4

J'ai créé une petite fenêtre avec un peu de style. Maintenant, je veux l'utiliser exactement comme un MessageBox. Comment puis-je y arriver?Comment utiliser la fenêtre WPF comme boîte de message?

Modifier: Je suis nouveau à WPF. J'ai essayé de l'appeler dans la fenêtre principale comme ça.

Window1 messageBox = new Window1(); 
messageBox.Show(); 
messageBox.Activate(); 

Le problème est la nouvelle fenêtre générée disparaît juste derrière la fenêtre principale sans me laisser de cliquer sur le bouton d'action en elle.

Répondre

7

Utilisez ShowDialog au lieu de Show pour faire apparaître la fenêtre de la boîte de message. Dans cet utilisateur de façon sera HVE d'abord fermer la fenêtre ou boîte de message avant de revenir à la fenêtre principale

MessageWindow message= new MessageWindow(); 
message.ShowDialog(); 

Modifier

Vous évidemment que d'avoir fait retour dans la fenêtre principale droite? vous pouvez le faire de plusieurs façons. Une façon la plus simple pourrait consister à exposer une méthode publique dans MainWindow

public GetResult(bool result) 
{ 
    //your logic 
} 

Créer un constructeur de MessageWindow qui prennent MainWindow dans le paramètre

private MainWindow window; 
public MessageWindow(MainWindow mainWindow) 
     { 
      InitializeComponent(); 
      window = mainWindow; 
     } 
    //now handle the click event of yes and no button 
    private void YesButton_Click(object sender, RoutedEventArgs e) 
     { 
      //close this window 
      this.Close(); 
      //pass true in case of yes 
      window.GetResult(true); 
     } 

     private void NoButton_Click_1(object sender, RoutedEventArgs e) 
     { 
      //close this window 
      this.Close(); 
      //pass false in case of no 
      window.GetResult(false); 
     } 
//in that case you will show the popup window like this 
MessageWindow message= new MessageWindow(this); 
message.ShowDialog(); 
+0

Merci m'a beaucoup aidé ... Je oui et non bouton la boîte de dialogue comment récupérer la valeur et appliquer la logique pour cela? IF messageBox valeur bool = 1 DO CE AUTRE Pour ce faire, FIN NE – user995387

+0

voir la réponse mise à jour –

+0

BTW je veux l'appeler du contrôle de l'utilisateur. peux-tu me montrer comment? – user995387

Questions connexes