Example #1
0
        public bool DisplayMessageDialog(string title, string message)
        {
            ManualResetEvent dialogCloseEvent = new(false);

            bool okPressed = false;

            Dispatcher.UIThread.InvokeAsync(async() =>
            {
                try
                {
                    ManualResetEvent deferEvent = new(false);

                    bool opened = false;

                    UserResult response = await ContentDialogHelper.ShowDeferredContentDialog(_parent,
                                                                                              title,
                                                                                              message,
                                                                                              "",
                                                                                              LocaleManager.Instance["DialogOpenSettingsWindowLabel"],
                                                                                              "",
                                                                                              LocaleManager.Instance["SettingsButtonClose"],
                                                                                              (int)Symbol.Important,
                                                                                              deferEvent,
                                                                                              async(window) =>
                    {
                        if (opened)
                        {
                            return;
                        }

                        opened = true;

                        _parent.SettingsWindow = new SettingsWindow(_parent.VirtualFileSystem, _parent.ContentManager);

                        await _parent.SettingsWindow.ShowDialog(window);

                        opened = false;
                    });

                    if (response == UserResult.Ok)
                    {
                        okPressed = true;
                    }

                    dialogCloseEvent.Set();
                }
                catch (Exception ex)
                {
                    await ContentDialogHelper.CreateErrorDialog(string.Format(LocaleManager.Instance["DialogMessageDialogErrorExceptionMessage"], ex));

                    dialogCloseEvent.Set();
                }
            });

            dialogCloseEvent.WaitOne();

            return(okPressed);
        }