コード例 #1
0
        public MainWindowViewModel()
        {
            MessageBoxCommand = new DelegateCommand(async() =>
            {
                var info = new MessageBoxNotification()
                {
                    Title   = "Confirm",
                    Content = "aaaaaaaaaaaaaaaaaaaaaaaaaa\nbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\ncccccc",
                    Icon    = MessageBoxNotification.IconType.Question,
                    Button  = MessageBoxNotification.ButtonType.OkCancel
                };

                var result = await MessageBoxRequest.RaiseAsync(info);
                Debug.WriteLine(result.Confirmed);
            });

            var notify = new SubWindowNotification();

            SubWindowShowCommand = new DelegateCommand(() =>
            {
                SubWindowRequest.Raise(notify);
            });

            SubWindowCloseCommand = new DelegateCommand(() =>
            {
                notify.DoClosing();
            });
        }
        private void UpdateNotification(MessageBoxNotification info)
        {
            info.Confirmed = false;

            Content = info.Content.ToString();

            Icon icon = null;

            switch (info.Icon)
            {
            case MessageBoxNotification.IconType.Error:
                icon = SystemIcons.Error;
                break;

            case MessageBoxNotification.IconType.Warning:
                icon = SystemIcons.Warning;
                break;

            case MessageBoxNotification.IconType.Information:
                icon = SystemIcons.Information;
                break;

            case MessageBoxNotification.IconType.Exclamation:
                icon = SystemIcons.Exclamation;
                break;

            case MessageBoxNotification.IconType.Question:
                icon = SystemIcons.Question;
                break;

            case MessageBoxNotification.IconType.None:
            default:
                break;
            }

            if (icon != null)
            {
                IconVisibility = Visibility.Visible;
                var image = Imaging.CreateBitmapSourceFromHIcon(
                    icon.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
                image.Freeze();
                IconImage = image;
                icon.Dispose();
            }
            else
            {
                IconVisibility = Visibility.Collapsed;
            }

            if (info.Button == MessageBoxNotification.ButtonType.Ok)
            {
                CancelVisibility = Visibility.Collapsed;
            }
            else
            {
                CancelVisibility = Visibility.Visible;
            }
        }