Eh bien, j'utilise une fenêtre comme boîte de message personnalisé avec quelques contrôles qui sont affichés/remplis de texte selon le constructeur appelé.Conseil boîte de message personnalisé
J'ai un événement défini, auquel je suis abonné via la classe d'origine, cela se déclenche une fois que le bouton a été cliqué.
Cependant, je ne vois pas comment l'utiliser efficacement, de préférence je voudrais retourner un bool si oui ou non a été cliqué, mais évidemment mon code continuera à s'exécuter, d'où la méthode qui est sous-cablé au bouton Cliquez sur. Voici un exemple de code pour clarifier le problème.
message Jardinière
public partial class CustomMessageBox : Window
{
public delegate void MessageBoxHandler(object sender, EventArgs e);
public event MessageBoxHandler MessageBoxEvent;
public CustomMessageBox()
{
InitializeComponent();
}
public CustomMessageBox(string message)
{
InitializeComponent();
this.txtdescription.Text = message;
}
public CustomMessageBox(string message, string title, string firstBtnText)
{
InitializeComponent();
this.lbltitle.Content = title;
this.txtdescription.Text = message;
this.btnstart.Content = firstBtnText;
}
}
public static class MessageBoxButtonClick
{
public static bool Yes { get; set; }
public static bool No { get; set; }
public static bool Cancel { get; set; }
}
fenêtre qui Instancie la fenêtre MessageBox
private void StartProcess_Click(object sender, System.Windows.RoutedEventArgs e)
{
foreach (var result in results)
{
if(result.ToBeProcessed)
_validResults.Add(new ToBeProcessed(result.Uri, result.Links));
}
_msgbox = new CustomMessageBox("Each Uri's backlinks will now be collected from Yahoo and filtered, finally each link will be visited and parsed. The operation is undertaken in this manner to avoid temporary IP Blocks from Yahoo's servers.", "Just a FYI", "OK");
_msgbox.MessageBoxEvent += (MessageBoxHandler);
if (_msgBoxProceed)
{
_msgbox.Close();
Yahoo yahoo = new Yahoo();
yahoo.Status.Sending += (StatusChange);
//What I'd like to happen here is the code simply stop, like it does when calling a messagebox is winforms
//e.g.
// if(ProceedClicked == true)
// do stuff
// yahoo.ScrapeYahoo(_validResults[Cycle].Uri, _validResults[Cycle].LinkNumber);
//Cycle++;
}
else
{
_msgbox.Close();
}
}
private void MessageBoxHandler(object sender, EventArgs e)
{
if (MessageBoxButtonClick.Yes)
{
ProceedClicked = true;
}
else
{
ProceedClicked = false;
}
}
Espérons qui le rend assez clair, je ne peux pas tout le code d'exécution à-dire appeler un certain méthode en raison de l'utiliser plusieurs fois tout au long de mon application.
Hey Mark, je n'ai pas réalisé que Windows dans WPF avait la propriété ShowDialog, donc mon problème est résolu. Merci compagnon. – Ash