I've tried several methods here on stackoverflow, and the closest one is the following:
Border DesignBorder = new Border();
DesignBorder.BorderThickness = new System.Windows.Thickness(2.0);
DesignBorder.BorderBrush = Brushes.Black;
GeneralTransform transform = Selected.TransformToVisual(canvasDrawingArea);
Rect R = transform.TransformBounds(new Rect(0, 0, Selected.ActualWidth, Selected.ActualHeight));
DesignBorder.SetValue(Canvas.LeftProperty, R.Left);
DesignBorder.SetValue(Canvas.TopProperty, R.Top);
DesignBorder.SetValue(Canvas.WidthProperty, R.Width);
DesignBorder.SetValue(Canvas.HeightProperty, R.Height);
canvasDrawingArea.Children.Add(DesignBorder);
Selected is the image that has been rotated.
When the Image is rotated in increments of 90 degrees, everything looks great. However, at 45, 135, etc. degrees, the bounding box is not nearly close enough
Is this just the best that can be done? Or is there a way to improve the bounding box?
EDIT:
I thought it was working find for 90 degree rotates, but it only gave the appearance of working as the image I was working with was nearly a square. As soon as I put a more rectangular image in, it became obvious that 90 degree increments also do not work.