Я собираюсь реализовать диалоговое окно подтверждения в OnBackKeyPress
. Это легко сделать с машинным окном сообщения:Windows Phone: как добавить пользовательский диалог подтверждения в OnBackKeyPress
protected override void OnBackKeyPress(CancelEventArgs e)
{
base.OnBackKeyPress(e);
MessageBoxResult result = MessageBox.Show("Text");
if(result==MessageBoxResult.OK)
{
e.Cancel = true;
}
}
Это работает, но мне не нравится ограничение с двумя кнопками, так что я ищу что-то еще.
Я проверил WPtoolkit:
private bool m_cansel = false;
protected override void OnBackKeyPress(CancelEventArgs e)
{
base.OnBackKeyPress(e);
if (!m_cansel)
{
e.Cancel = true;
m_cansel = true;
var messageBox = new CustomMessageBox
{
Title = "Title",
Message = "Message",
RightButtonContent = "aas",
IsLeftButtonEnabled = false,
};
messageBox.Dismissed += (sender, args) =>
{
};
messageBox.Show();
}
}
И Coding4Fun:
private bool m_cansel = false;
protected override void OnBackKeyPress(CancelEventArgs e)
{
base.OnBackKeyPress(e);
if (!m_cansel)
{
e.Cancel = true;
m_cansel = true;
var messageBox = new MessagePrompt
{
Title = "Title",
Message = "Message",
};
messageBox.Completed += (sender, args) =>
{
//throw new NotImplementedException();
};
messageBox.Show();
}
И выглядит хорошо, но не работают в OnBackKeyPress
методе (шоу и сразу исчезают без моего поступка).
Кроме того, я попытался XNA:
private bool m_cansel = false;
protected override void OnBackKeyPress(CancelEventArgs e)
{
base.OnBackKeyPress(e);
if (!m_cansel)
{
e.Cancel = true;
m_cansel = true;
Guide.BeginShowMessageBox("Version of Windows", "Pick a version of Windows.",
new List<string> {"Vista", "Seven"}, 0, MessageBoxIcon.Error,
asyncResult =>
{
int? returned = Guide.EndShowMessageBox(asyncResult);
}, null);
}
}
Это работает, как я ожидал (имеют обычаи в OnBackKeyPress
методы), но я не уверен, что с помощью XNA в Silverlight приложении является хорошей практикой.
Итак, я ищу способ использовать окна WPtoolkit или Coding4Fun внутри метода OnBackKeyPress
или любое объяснение об использовании XNA внутри приложения Silverlight (любая рекомендация или информация об утверждении такого рода приложения магазином).
Молодцы! Так просто так ясно. – RredCat