private void ShowMessageThread(object Parameter)
        {
            ShowMessageEventArgs msgArgs = Parameter as ShowMessageEventArgs;

            if (msgArgs.MsgType != MessageType.Title)
            {
                iThreadCount++;
                if (iThreadCount > 3)
                {
                    iThreadCount--;
                    return;
                }
            }

            lock (Token)
            {
                if (msgArgs == null)
                {
                    return;
                }
                Dispatcher.BeginInvoke((Action)(() =>
                {
                    TextMessage = msgArgs.MsgText;

                    switch (msgArgs.MsgType)
                    {
                    case MessageType.Information:
                        ImageMessage = new BitmapImage(new Uri("pack://application:,,,/Infra.Wpf;component/Controls/Resources/Information-32.png"));
                        ColorMessage = Brushes.Blue;
                        break;

                    case MessageType.Warning:
                        ImageMessage = new BitmapImage(new Uri("pack://application:,,,/Infra.Wpf;component/Controls/Resources/Warning-32.png"));
                        ColorMessage = Brushes.DarkGoldenrod;
                        break;

                    case MessageType.Error:
                        ImageMessage = new BitmapImage(new Uri("pack://application:,,,/Infra.Wpf;component/Controls/Resources/Error-32.png"));
                        ColorMessage = Brushes.DarkRed;
                        break;

                    case MessageType.None:
                        ImageMessage = null;
                        ColorMessage = Brushes.Blue;
                        break;

                    case MessageType.Title:
                        ImageMessage = null;
                        ColorMessage = Brushes.Blue;
                        Title = msgArgs.MsgText;
                        break;
                    }
                }));

                if (msgArgs.MsgType != MessageType.Title)
                {
                    Thread.Sleep(3000);
                    if (iThreadCount == 1)
                    {
                        ClearMessageCommand.Execute(null);
                    }
                    iThreadCount--;
                }
            }
        }
Example #2
0
        public void ShowMessage(MessageType msgType, String strMessage)
        {
            ShowMessageEventArgs msgArgs = new ShowMessageEventArgs(msgType, strMessage);

            ShowMessageEvent?.Invoke(this.Parent, msgArgs);
        }