//Logger Callback
        private void OnMessageLogged(Logger.LogType logType, string message)
        {
            //Determine message color
            SolidColorBrush colorBrush = Brushes.White;

            switch (logType)
            {
            case Logger.LogType.Warning:
                colorBrush = Brushes.Yellow;
                break;

            case Logger.LogType.Error:
                colorBrush = Brushes.Red;
                break;

            case Logger.LogType.Normal:
            default:
                colorBrush = Brushes.White;
                break;
            }

            //Add to textbox
            TextRange textRange = new TextRange(InfoTextbox.Document.ContentEnd, InfoTextbox.Document.ContentEnd);

            textRange.Text = "\n" + message;
            textRange.ApplyPropertyValue(TextElement.ForegroundProperty, colorBrush);

            //Scroll to the bottom so it can instantly be read
            InfoTextbox.ScrollToEnd();
        }
        //Constructor & Destructor
        public MainWindow()
        {
            InitializeComponent();

            //Listen to log events
            Logger.MessagedLoggedEvent += OnMessageLogged;

            //Setup InfoTextbox
            InfoTextbox.Document.Blocks.Clear();
            InfoTextbox.AppendText("Select input & output files then press convert.");
        }