private void TrayIconOnClick(object sender, EventArgs e)
        {
            MouseEventArgs mouseArgs = (MouseEventArgs)e;

            if (mouseArgs.Button == MouseButtons.Left)
            {
                if (!_iconDeactivatedWithClick)
                {
                    Matrix transform;

                    using (var src = new HwndSource(new HwndSourceParameters()))
                    {
                        transform = src.CompositionTarget.TransformFromDevice;
                    }

                    var    rect    = _trayIcon.GetRect();
                    double iconMid = (rect.Left + (rect.Width / 2.0)) * transform.M11;
                    // calculate where to put
                    var xPadding = 0.0;
                    (Alignment align, (double left, double top, double right, double bottom)) = TaskbarPosition.GetTaskbarPosition();
                    double height = bottom - top;
                    double width  = right - left;
                    switch (align)
                    {
                    case Alignment.BOTTOM:
                        // place on bottom right
                        _mini.Top  = (rect.Top * transform.M22) - _mini.Height;
                        _mini.Left = iconMid - (_mini.Width / 2.0);
                        break;

                    case Alignment.LEFT:
                        // place on bottom left
                        _mini.Top  = bottom - _mini.Height;
                        _mini.Left = left + width + xPadding;
                        break;

                    case Alignment.RIGHT:
                        // place on bottom right, but down more
                        _mini.Top  = bottom - _mini.Height;
                        _mini.Left = right - _mini.Width - width - xPadding;
                        break;

                    case Alignment.TOP:
                        // place on top right
                        _mini.Top  = (rect.Bottom * transform.M22);
                        _mini.Left = iconMid - (_mini.Width / 2.0);
                        break;
                    }
                    _mini.Show();
                    _mini.Activate();
                }
                _iconDeactivatedWithClick = false;
            }
        }