我正在尝试使用以下代码将RotateTransform
应用于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)
函数在第一个代码片段中那样转换Rect?
答案 0 :(得分:2)
可怜,因为你的轮换不是90度的倍数。 Rect上的Transform会导致rect与x& y轴!