我在stackoverflow上尝试了几种方法,最接近的方法如下:
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);
已选择已旋转的图像。
当图像以90度为增量旋转时,一切看起来都很棒。但是,在45度,135度等角度下,边界框不够接近
这是最好的吗?或者有没有办法改进边界框?
修改
我认为它可以找到90度旋转,但它只是给出了工作的外观,因为我正在使用的图像几乎是一个正方形。一旦我放入一个更加矩形的图像,很明显90度的增量也不起作用。