사용자가 뒤로 키를 눌렀을 때 종료를 확인하는 대화 상자를 표시하려고합니다. 네이티브 MessageBox를 사용하여이 작업을 수행 할 수 있다는 것을 알고 있습니다. 그러나 Winphone Toolkit에서 CustomMessageBox를 사용하면 취소 된 이벤트가 취소 된 후에 취소됩니다.뒤로 키를 눌러 응용 프로그램을 끝내기 전에 CustomMessageBox를 표시하십시오.
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
e.Cancel = true;
CustomMessageBox messageBox = new CustomMessageBox()
{
Caption = "Exit",
Message = "Do you want to exit?",
LeftButtonContent = "Yes",
RightButtonContent = "No"
};
messageBox.Dismissed += (s1, e1) =>
{
switch (e1.Result)
{
case CustomMessageBoxResult.LeftButton:
//app doesn't exit as expected
e.Cancel = false;
break;
case CustomMessageBoxResult.RightButton:
break;
case CustomMessageBoxResult.None:
break;
default:
break;
}
};
messageBox.Show();
}
이벤트를 취소하지 않으면 앱이 메시지 상자를 표시하지 않고 종료됩니다. Show를 호출하고 스레드를 잠그려고하면 messagebox가 표시되지 않습니다. 대신 Terminate 또는 Exception을 사용하여 응용 프로그램을 종료 할 수 있다는 것을 알고 있지만 Application_Closing을 호출 할 수 있도록 올바르게 종료해야합니다. 도와주세요! 감사.
응답에 대한 감사,하지만 난 당신이 강제로 응용 프로그램을 종료 한 후 다시 키 이벤트를 취소하는 것보다 다른 선택의 여지가 –
@MadiShiva 그런 다음 빛을 테마로 반투명 화면 색상을 사용자 정의 할 CustomMessageBox를 사용할 필요가 당신이 언급 한 단점. 'Application_Closing'을 호출하지 않는 것이 유일한 걱정이라면 로직을 다른 메소드로 옮기기 위해 코드를 리팩토링 한 다음이 메소드를'Application_Closing'과 messagebox의 콜백 메소드 둘 다에서 호출하십시오 –
그래, 그것이 있다면 유일한 방법 인 것 같습니다 다른 솔루션 없음 –