メソッドにカスタム確認ダイアログを実装しますOnBackKeyPress
。ネイティブ メッセージ ボックスを使用するのは簡単です。
protected override void OnBackKeyPress(CancelEventArgs e)
{
base.OnBackKeyPress(e);
MessageBoxResult result = MessageBox.Show("Text");
if(result==MessageBoxResult.OK)
{
e.Cancel = true;
}
}
動作しますが、ボタンが 2 つの制限が嫌いなので、別のものを探しています。
私は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
ます) が、Silverlight アプリ内で XNA を使用することが適切かどうかはわかりません。
そのため、メソッド内で WPtoolkit または Coding4Fun ウィンドウを使用するOnBackKeyPress
方法、または Silverlight アプリ内で XNA を使用することに関する説明 (ストアによるそのような種類のアプリの承認に関する推奨事項または情報) を探しています。