Beispiel #1
0
        public static async Task <MessageBoxResult> Show(Window parent, string title, string text)
        {
            var messageBoxView = new MessageBoxView {
                Title = title
            };

            messageBoxView.FindControl <TextBlock>("Text").Text = text;
            var buttonPanel = messageBoxView.FindControl <StackPanel>("Buttons");

            var result = MessageBoxResult.Cancel;

            void AddButton(string caption, MessageBoxResult r)
            {
                var button = new Button {
                    Content = caption
                };

                button.Click += (_, __) =>
                {
                    result = r;
                    messageBoxView.Close();
                };
                buttonPanel.Children.Add(button);
                result = r;
            }

            AddButton("Ok", MessageBoxResult.Yes);
            AddButton("Cancel", MessageBoxResult.Cancel);


            await messageBoxView.ShowDialog(parent);

            return(result);
        }
Beispiel #2
0
        private async void WhenClosing(object?o, CancelEventArgs args)
        {
            var vm = (MainWindowViewModel)DataContext;

            if (vm.Score.ScorePagesVM.Count == 0)
            {
                return;
            }
            args.Cancel = true;
            var result =
                await MessageBoxView.Show(this, "Closing ?", "You may have unsaved work. Do you really want to exit ?");

            if (result != MessageBoxView.MessageBoxResult.Yes)
            {
                return;
            }
            Closing -= WhenClosing;
            Close();
        }