我以這種方式使用MessageBox
:添加監聽器,消息框OK按鈕在Windows Phone的
Deployment.Current.Dispatcher.BeginInvoke(() => {
MessageBox.Show("The alarm has been raised");
});
用戶點擊確定後如何採取行動?
我以這種方式使用MessageBox
:添加監聽器,消息框OK按鈕在Windows Phone的
Deployment.Current.Dispatcher.BeginInvoke(() => {
MessageBox.Show("The alarm has been raised");
});
用戶點擊確定後如何採取行動?
在您的項目中添加Microsoft.Xna.Framework.GamerServices的引用。
Deployment.Current.Dispatcher.BeginInvoke(() => {
List<string> messageboxitm = new List<string>();
messageboxitm.Add("Yes");
messageboxitm.Add("No");
IAsyncResult result = Guide.BeginShowMessageBox("Message", "The alarm has been raised", messageboxitm, 0, MessageBoxIcon.Alert, new AsyncCallback(OnMessageBoxClosed), null);
});
private void OnMessageBoxClosed(IAsyncResult ar)
{
int? buttonIndex = Guide.EndShowMessageBox(ar);
switch (buttonIndex)
{
case 0:
//Do your work
break;
default:
break;
}
}
被認爲是最優雅的解決方案。 – Yoda
IAsyncResult result =Microsoft.Xna.Framework.GamerServices.Guide.BeginShowMessageBox(
"Info",
"Alarm has been raised",
new string[] { "OK", "Call emergency" },
0,
Microsoft.Xna.Framework.GamerServices.MessageBoxIcon.None,
null,
null);
result.AsyncWaitHandle.WaitOne();
media.AutoPlay = true;
}
在簡單的情況下,你可以使用MessageBoxResult
(在Windows Phone的只限於按鈕OK /艾伯塔省):
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
MessageBoxResult result = MessageBox.Show("Show next message?", "Question", MessageBoxButton.OKCancel);
// code after user click
if (result == MessageBoxResult.OK) MessageBox.Show("Yeah");
});
但它是有點有限,不能更改按鈕的內容。使用Guide.BeginShowMessageBox的解決方案更具可配置性。您也可以使用其他解決方案:CustomMessageBox from Windows Phone Toolkit,如果您有Telerik - RadMessageBox。
'MessageBox.Show'方法返回一個'MessageBoxResult'變量,它表明採取了哪些操作(確定,取消,無,是或否)。請參閱[MSDN](http://msdn.microsoft.com/zh-cn/library/ms598690(v = vs.110).aspx)。 –