2010-07-22 31 views
1

在我的項目(WPF)中,我使用System.Windows.MessageBox向用戶顯示了一個關鍵操作(如刪除操作)的確認對話框。關鍵操作的MessageBox確認

我的問題是,如果我指定爲按鈕值MessageBoxButton.YesNo,用戶不能使用escape-key取消操作。 IMO這是程序可以做的最煩人的事情之一,顯示一個對話框,但沒有可能通過escape-key取消/關閉對話框。

其他的可能性是MessageBoxButton.YesNoCancel,但IMO這是令人困惑,因爲它顯示三個按鈕只有兩個操作。或者可以使用MessageBox.OKCancel,但這是IMO不夠清楚。在我的對話中,我想詢問用戶她是否真的想要執行操作。爲此,一個簡單的確定是不合適的。 A (我想要)比ok好得多(繼續)。

你是如何處理這個問題的?這是一個非主題,或者你認爲我是否有自己的MessageBox-implementation,或者你知道擴展System.Windows.MessageBox-classes的可能性嗎?

+1

按下退出鍵是「是」還是「否」? :-)我會使用是/否/取消,其中否和取消是相同的事情。 「不刪除」和「取消刪除」(也通過轉義鍵路由)。 – 2010-07-22 22:04:25

回答

3

製作自定義消息框(繼承自Window),該消息框包含標題/消息和確認按鈕文本的佔位符。然後,您可以設計一個很好的引人注目的對話框,它將從用戶通常看到的數百個標準的確定/取消消息框中脫穎而出。例如,您可以使用類似於Windows Vista對話框的較大標題字體,或者包含自定義圖像。

然後,您明顯可以自己處理Escape鍵,並在每個對話框的基礎上定義默認的Escape行爲。