MessageBox-подтверждение для критических операций - PullRequest
1 голос
/ 23 июля 2010

В моих проектах (WPF) я использую System.Windows.MessageBox, чтобы показать пользователю диалоговое окно подтверждения для критически важных операций, таких как операция удаления.

Моя проблема заключается в том, что если я укажу в качестве значения кнопкиMessageBoxButton.YesNo, пользователь не может использовать Escape-клавишу для отмены операции.IMO, это одна из самых раздражающих вещей, которые может сделать программа, показывая диалог без возможности отменить / закрыть диалог через escape-клавишу.

Другие возможности MessageBoxButton.YesNoCancel, но IMO этосбивает с толку, потому что он показывает три кнопки только для двух операций.Или можно использовать MessageBox.OKCancel, но это ИМО недостаточно ясно.В моих диалогах я хочу спросить пользователя, действительно ли она хочет выполнить операцию.И для этого простое ок не подходит.A yes (я хочу) намного лучше, чем ok (продолжайте).

Как вы справляетесь с этим?Это не тема, или вы думаете так же, как я, и у вас есть собственная реализация MessageBox, или вы знаете возможность расширить класс System.Windows.MessageBox?

1 Ответ

3 голосов
/ 23 июля 2010

Создайте пользовательское окно сообщения (наследуемое от Window), которое содержит заполнители для заголовка / сообщения и текста кнопки подтверждения. Затем вы можете создать приятный, привлекающий внимание диалог, который будет отличаться от сотен стандартных OK / Cancel MessageBoxes, которые обычно видит пользователь. Например, вы можете использовать больший шрифт заголовка, как в диалоговых окнах Windows Vista, или включить пользовательский образ.

Тогда вы, очевидно, могли бы самостоятельно обработать клавишу Escape и определить поведение Escape по умолчанию для каждого диалогового окна.

...