MessageBox из пользовательского Window [дубликат]

274
27 сентября 2017, 08:05

На данный вопрос уже ответили:

  • WPF. Messagebox. Как поменять стиль диалогового окна? 1 ответ

Хочу сделать свой MessageBox, с интерфейсом и оформлением. Особо интересует возвращаемое значение - как сделать что бы при выборе ДА или НЕТ выполнялось определенное действие как :

if (MessageBoxResult.Yes == MessageBox.Show("Do you want to open Report?", "Report", MessageBoxButton.YesNo))

Как организовать класс BOX который заменял бы стандартный MessageBox? Я пытаюсь сделать это с помощью partial class ShowWind : Window и класса BOX. Класс BOX создает новый экземпляр ShowWind :

    internal static MessageBoxResult ShowQuestion(string mess, string header)
    {
        ShowWind window = new ShowWind(mess, header);
        window.Show();
        MessageBoxResult result = window.result;
        return result;
    }

Если нужно просто вывести какое то сообщение - все нормально а если диалог, где есть выбор ДА или НЕТ то MessageBoxResult не возвращается. Как должно быть правильно ?

Answer 1

У System.Windows.Window есть свойство DialogResult. Вызываете свою форму через ShowDialog() а в самой форме присваиваете данному свойству true или false, в зависимости от нажатых кнопок формы. Если нужен возврат каких либо значений у формы делаете публичное поле, которое можно записать и которое можно прочитать.

public partial class DialogWnd : Window
{
    public DialogWnd()
    {
        InitializeComponent();
    }
    public string Message { get; set; }
    private void bOk_Click(object sender, RoutedEventArgs e)
    {
        Message = "OK!!!";
        DialogResult = true;
    }
    private void bCancel_Click(object sender, RoutedEventArgs e)
    {
        Message = "Not OK :(";
        DialogResult = false;
    }
}
READ ALSO
Путь к файлу/ресурсу в библиотеке

Путь к файлу/ресурсу в библиотеке

Есть своя библиотека классов, в которой есть файл (например, xsd)Как получить доступ к этому файлу из консольного и ASP MVC проекта?

224
C# работа с подстрокой

C# работа с подстрокой

Как сделать такое задание используя классы (Word, Sentence)?

297
Проблема с загрузкой папок с диска

Проблема с загрузкой папок с диска

Проблем такаяЕсть элемент TreeView, в него при загрузки формы добавляются все диски компьютера(Скриншот ниже)

306
Unity3d - Изменение Text через GetComponent C#

Unity3d - Изменение Text через GetComponent C#

В сцене есть Scrolling Menu которое создает префабы с содержимым Sprite и добавлена кнопка Select и Buy которые активируются в зависимости от текущего...

336