开发者

WPF Rect Transform

开发者 https://www.devze.com 2023-02-03 05:38 出处:网络
I am trying to apply RotateTransform to a Rect object with the following code. Rect transformed = this.Rectangle;

I am trying to apply RotateTransform to a Rect object with the following code.

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);

but the rectangle is not rotated. However when I push the transformation to the DrawingContext, as in the following cod开发者_如何学Pythone, rectangle is transformed correctly.

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);

Is there a way to transform a Rect as in the first code fragment with Rect.Transform(Matrix) function?


Prabably because your rotation is not multiple of 90deg. Transform on Rect results in rect that it parallel to x & y axis!

  • First case renders modified rectangle that is not rotated a syou desire - seems to be bouding box after rotation
  • Second case doest what you wish - it first "rotate content", then draws rectangle
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号