private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            timer          = new DispatcherTimer();
            timer.Interval = timerInterval;
            timer.Tick    += timer_Tick;

            // MoveNext starts the timer
            MoveNext();
            LayoutUtilities.PositionWindowOnPrimaryWorkingArea(this, HorizontalAlignment.Center, VerticalAlignment.Center);
        }
        private void PositionWindow()
        {
            _isRepositioning = true;   // suppress processing of LocationChanged events
            if (Enum.TryParse(Settings.Default.ToolDocking, out _currentDockState))
            {
                // Restore last tool position
                var upperLeft = Settings.Default.ToolPosition;
                Left = upperLeft.X;
                Top  = upperLeft.Y;
                AdjustOrientation(_currentDockState);
            }
            else
            {
                // Default tool position
                LayoutUtilities.PositionWindowOnPrimaryWorkingArea(this, HorizontalAlignment.Center, VerticalAlignment.Top);
                _currentDockState = DockState.Top;
            }
            _isRepositioning = false;

            // Now, raise LocationChanged event to do final repositioning
            this.OnLocationChanged(new EventArgs());
        }