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--; } } }
public void ShowMessage(MessageType msgType, String strMessage) { ShowMessageEventArgs msgArgs = new ShowMessageEventArgs(msgType, strMessage); ShowMessageEvent?.Invoke(this.Parent, msgArgs); }