我使用Coding4Fun工具包中的MessagePrompt
创建了自定义MessageBox。 当我运行ResetData_Click
时出现问题。我预计启动ComplexMessage.Show
后ResetData_Click
内的其余代码停止执行,而ComplexMessage
处于打开状态。正如所发生的,它完全不同。所有的代码在一旦执行,并不要紧将在ComplexMessage
因为自定义MessageBox启动时应该如何冻结父线程?
if (ComplexMessage.Result)...
已经执行,选择什么样的用户。 我该怎么做才能使我的ComplexMessage
的行为像System.Windos.MessageBox
?这意味着当调用MessageBox
父母的线程正在等待用户的决定。
private void ResetData_Click(object sender, RoutedEventArgs e)
{
ComplexMessage.Show("You are about to delete all data", "Are you sure?", true);
if (ComplexMessage.Result)
{
DataControl.DataFileReset();
}
}
public class ComplexMessage
{
private static MessagePrompt messageprompt;
private static bool messageresult;
public static void Show(string message, string title, bool vibrate)
{
if (!(!(messageprompt == null) && messageprompt.IsOpen))
{
messageprompt = new MessagePrompt
{
Title = title,
Message = message
};
messageprompt.Completed += new EventHandler<PopUpEventArgs<string, PopUpResult>>(messageprompt_Completed);
messageprompt.IsCancelVisible = true;
messageprompt.Show();
if (vibrate) { Tools.VibrateMessage(); }
}
}
static void messageprompt_Completed(object sender, PopUpEventArgs<string, PopUpResult> e)
{
if (!e.PopUpResult.Equals(PopUpResult.Cancelled))
{
messageresult = true;
}
else
{
messageresult = false;
}
((MessagePrompt)sender).Completed -= messageprompt_Completed;
}
public static bool Result
{
get { return messageresult; }
}
}
是否推出垃圾收集的新术语? LOL;) – 2011-05-11 16:59:02
:-D对拼写错误感到抱歉! – Maku 2011-05-11 17:11:24
s'ok我今天需要一个好笑。谢谢:) – 2011-05-11 17:52:22