private void PostionRight()
        {
            Screen activeScreen  = ActiveScreen;
            Screen taskBarScreen = Screen.FromHandle(TaskBar.GetHandle());;
            Size   taskBarSize   = TaskBar.GetTaskBarSize();

            var left   = activeScreen.Bounds.Left + activeScreen.Bounds.Width - screenResolution.ConvertXToScreen(form.Width);
            var top    = activeScreen.Bounds.Top;
            var height = activeScreen.Bounds.Height;

            var taskbarHeight = (activeScreen.DeviceEquals(taskBarScreen) ? taskBarSize.Height : 0);
            var taskbarWidth  = (activeScreen.DeviceEquals(taskBarScreen) ? taskBarSize.Width : 0);

            switch (TaskBar.GetTaskBarEdge())
            {
            case TaskBar.TaskBarEdge.Left:
                form.Left   = screenResolution.ConvertXDpi(left);
                form.Top    = screenResolution.ConvertYDpi(top);
                form.Height = screenResolution.ConvertYDpi(height);
                break;

            case TaskBar.TaskBarEdge.Top:
                form.Left   = screenResolution.ConvertXDpi(left);
                form.Top    = screenResolution.ConvertYDpi(top + taskbarHeight);
                form.Height = screenResolution.ConvertYDpi(height - taskbarHeight);
                break;

            case TaskBar.TaskBarEdge.Right:
                form.Left   = screenResolution.ConvertXDpi(left - taskbarWidth);
                form.Top    = screenResolution.ConvertYDpi(top);
                form.Height = screenResolution.ConvertYDpi(height);
                break;

            case TaskBar.TaskBarEdge.Bottom:
                form.Left   = screenResolution.ConvertXDpi(left);
                form.Top    = screenResolution.ConvertYDpi(top);
                form.Height = screenResolution.ConvertYDpi(height - taskbarHeight);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }