2011-01-05 5 views
3

다음 코드로 Rect 개체에 RotateTransform을 적용하려고합니다.WPF Rect Transform

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) 기능 제의 코드와 같이 사각형을 변환하는 방법이 있는가?

답변

2

회전 각도가 90deg의 배수가 아니기 때문에 쉽게 움직일 수 있습니다. Rect에서 Transform하면 x 축에 평행하게되는 rect가 생성됩니다. y 축!

  • 첫 번째 경우는 syou의 욕망을 회전하지 않는 수정 사각형을 렌더링 - 회전 후 상자를 bouding 것으로 보인다
  • 두 번째 경우는 도다 당신이 원하는 무엇을 - 처음 "내용을 회전"을 선택한 후 사각형
립니다
+0

예 첫 번째 경우는 두 번째 경우에서 회전 된 사각형의 경계 상자를 그립니다. 그래서 첫 번째 경우처럼 Rect를 회전하는 것이 불가능합니다. –