C# 关键操作的MessageBox确认

C# 关键操作的MessageBox确认,c#,wpf,vb.net,messagebox,C#,Wpf,Vb.net,Messagebox,在我的项目(WPF)中,我使用System.Windows.MessageBox向用户显示关键操作的确认对话框,例如删除操作 我的问题是,如果我指定为按钮值MessageBoxButton.YesNo,则用户无法使用escape键取消操作。在我看来,这是最烦人的事情之一,一个程序可以做,显示一个对话框,而不可能通过退出键取消/关闭对话框 其他的可能是MessageBoxButton.YesNoCancel,但在我看来这很混乱,因为它只显示了两个操作的三个按钮。或者可以使用MessageBox.o

在我的项目(WPF)中,我使用
System.Windows.MessageBox
向用户显示关键操作的确认对话框,例如删除操作

我的问题是,如果我指定为按钮值
MessageBoxButton.YesNo
,则用户无法使用escape键取消操作。在我看来,这是最烦人的事情之一,一个程序可以做,显示一个对话框,而不可能通过退出键取消/关闭对话框

其他的可能是
MessageBoxButton.YesNoCancel
,但在我看来这很混乱,因为它只显示了两个操作的三个按钮。或者可以使用
MessageBox.ok取消
,但这还不够清楚。在我的对话框中,我想询问用户是否真的想要执行操作。对于这一点,简单的ok是不合适的。“是的”(我想要)比“好的”(继续)要好得多

你是怎么处理的?这是一个非主题,还是您像我一样认为它有自己的MessageBox实现,或者您知道扩展
System.Windows.MessageBox
-类的可能性?

制作一个自定义的消息框(继承自
Window
),其中包含标题/消息和确认按钮文本的占位符。然后,您可以设计一个漂亮、吸引眼球的对话框,它将从用户通常看到的数百个标准“确定/取消”消息框中脱颖而出。例如,您可以使用类似于Windows Vista对话框的较大标题字体,或包含自定义图像


然后,您可以自己处理转义键,并在每个对话框的基础上定义默认转义行为。

按转义键是“是”还是“否”?:-)我会使用Yes/No/Cancel,其中No和Cancel是同一个词。“否不删除”和“取消删除”(也通过退出键发送)。