WPF Rect Transform
سؤال
أحاول التقديم 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)
وظيفة؟
المحلول
ببرمجة لأن دورتك لا مضاعفة من 90deg. يتحول على المستقيم في المستقيم أنه موازٍ لمحور X&Y!
- تعرض الحالة الأولى المستطيل المعدل الذي لم يتم تدوير رغبة SYOU - يبدو أنه صندوق bouding بعد الدوران
- الحالة الثانية تفعل ما تتمناه - أولاً "تدوير المحتوى" ، ثم يرسم المستطيل
لا تنتمي إلى StackOverflow