I'm in the process of implementing a selection box for my simulation and am having difficulty with something which appears simple. At the moment, I can draw the selection box and accurately select the items under it, provided the box was dragged from the top-left-hand corner downwards:

If I start dragging the box from any other point the rectangle doesn't correspond to that of the viewport, as demonstrated by the negative width and height.

Here is my code:
// selectionBox is Rectangle
if (mouse.LeftButton == ButtonState.Pressed && prevMouse.LeftButton == ButtonState.Pressed)
{
if (selecting)
{
selectionBox.Width = mouse.X - selectionBox.X;
selectionBox.Height = mouse.Y - selectionBox.Y;
}
else
{
selecting = true;
selectionBox.X = mouse.X;
selectionBox.Y = mouse.Y;
}
}
// Code to handle selection finished omitted
// Drawing code
if (selecting)
{
DrawingHelper.DrawRectangle(selectionBox, Color.Yellow, false);
DrawingHelper.DrawRectangle(new Rectangle(startPoint.X - 4, startPoint.Y - 4, 8, 8), Color.Red, true);
}
How can I adjust the X, Y, Width and Height of my selection box so that X and Y are always the top-left of the selection box no matter where the selection began?