WPF Rect变换
问题描述:
我试图使用下面的代码将RotateTransform
应用于Rect
对象。WPF Rect变换
Rect transformed = this.Rectangle;
transformed.Transform(this.rotateTransform.Value);
DrawingVisual visual = new DrawingVisual();
DrawingContext context = visual.RenderOpen();
context.DrawRectangle(null, new Pen(Brushes.Blue, 2), transformed);
context.Close();
canvas.Children.Add(visual);
但矩形不旋转。但是,当我将转换推向DrawingContext
时,如下面的代码所示,正确地转换矩形。
Rect transformed = this.Rectangle;
DrawingVisual visual = new DrawingVisual();
DrawingContext context = visual.RenderOpen();
context.PushTransform(this.rotateTransform);
context.DrawRectangle(null, new Pen(Brushes.Blue, 2), transformed);
context.Pop();
context.Close();
canvas.Children.Add(visual);
有没有办法在第一代码片段与Rect.Transform(Matrix)
函数变换矩形作为?
答
因为你的旋转不是90deg的倍数。矩形上的变换结果是它与y轴平行x &!
- 第一种情况将呈现不旋转的syou愿望修改矩形 - 似乎旋转后要bouding箱
- 第二种情况利己你希望的东西 - 它第一个“旋转内容”,然后绘制矩形
第一种情况是在第二种情况下绘制旋转矩形的边界框。所以我猜想在第一种情况下旋转Rect是不可能的。 – 2011-01-05 22:24:39