在WPF中旋转图像后没有获得适当的边界

时间:2013-12-15 04:05:53

标签: c# wpf image rotation bounds

我在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度等角度下,边界框不够接近

picture link for 90 degrees

enter image description here

picture link for 45 degrees

enter image description here

这是最好的吗?或者有没有办法改进边界框?

修改

我认为它可以找到90度旋转,但它只是给出了工作的外观,因为我正在使用的图像几乎是一个正方形。一旦我放入一个更加矩形的图像,很明显90度的增量也不起作用。

0 个答案:

没有答案