Beispiel #1
0
        /// <summary>
        /// Handling unhandled exceptions
        /// </summary>
        private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
        {
            // If showing an error message, make sure to close the splash screen immediately, using SplashScreenAdapter.CloseSplashScreen(),
            // before you show a message box.
            SplashScreenAdapter.CloseSplashScreen();

            var ex = e.Exception;

            string message = "An unhandled error just occurred: \n\n" + ex.Message + "\n" + ex.InnerException?.Message;

            MessageBox.Show(
                message,
                "Error",
                MessageBoxButton.OK,
                MessageBoxImage.Error
                );
            e.Handled = true;
        }
 private void MainWindow_MouseDown(object sender, MouseButtonEventArgs e)
 {
     SplashScreenAdapter.CloseSplashScreen(TimeSpan.FromSeconds(5));
 }
        public MainWindow()
        {
            InitializeComponent();

            //handle mouse clicks
            this.PreviewMouseDown += new MouseButtonEventHandler(MainWindow_PreviewMouseDown);

            Closing += (s, e) => ViewModelLocator.Cleanup();

            // register MapMessage to change AxMap properties
            Messenger.Default.Register <MapMessage>(
                this,
                message =>
            {
                switch (message.MessageType)
                {
                case MapMessageType.Default:
                    throw new NotImplementedException();
                    break;

                case MapMessageType.Message:
                    throw new NotImplementedException();
                    break;

                case MapMessageType.KnownExtent:
                    Karte.Tools.AxMap.KnownExtents = message.KnownExtent;                   //Set map extent
                    break;

                case MapMessageType.TileProvider:
                    //Karte.Tools.AxMap.TileProvider = message.TileProvider;
                    Karte.Tools.AxMap.Tiles.ProviderId = message.TileProviderId;            //Set tile provider
                    Karte.Tools.Redraw(false);
                    break;

                case MapMessageType.CursorMode:                                             //Set cursor mode
                    Karte.Tools.AxMap.CursorMode = message.CursorMode;
                    break;

                default:
                    break;
                }
            }
                );

            // register MessageBoxMessage for showing modal / non-modal message boxes
            Messenger.Default.Register <MessageBoxMessage>(
                this,
                message =>
            {
                // If showing an error message, make sure to close the splash screen immediately, using SplashScreenAdapter.CloseSplashScreen(),
                // before you show a message box.
                SplashScreenAdapter.CloseSplashScreen();

                if (message.IsModal)
                {
                    //message.Title sets the message box image
                    if (message.Title.ToLower().Contains("ERROR".ToLower()))
                    {
                        MessageBox.Show(message.Message, message.Title, MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                    else if (message.Title.ToLower().Contains("warning".ToLower()))
                    {
                        MessageBox.Show(message.Message, message.Title, MessageBoxButton.OK, MessageBoxImage.Warning);
                    }
                    else if (message.Title.ToLower().Contains("INFO".ToLower()))
                    {
                        MessageBox.Show(message.Message, message.Title, MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                    else
                    {
                        MessageBox.Show(message.Message, message.Title);
                    }
                }
                else
                {
                    Task.Run(() =>
                    {
                        MessageBox.Show(message.Message, message.Title);
                    });
                }
            }
                );

            // register DialogMessage for showing dialog boxes in MainWindow
            Messenger.Default.Register <DialogMessage>(
                this, WindowType.MainWindow,
                message =>
            {
                if (message == null)
                {
                    return;
                }

                var result = MessageBox.Show(
                    this,
                    message.Content,
                    message.Caption,
                    message.Button,
                    message.Icon,               //Default: Question Icon
                    message.DefaultResult,
                    message.Options);

                if (message.Callback != null)
                {
                    message.Callback(result);   // execute callback: send result to MainViewModel
                }
            });
        }