I have a form (red path below) and I have to apply TranslateTransform and ScaleTransform to this path. But if I use Shape RenderTransform as follows:
Path MyPath = new Path { Fill = new SolidColorBrush(Colors.Red) }; MyPath.Data = MyPathGeometry; TransformGroup transf = new TransformGroup(); transf.Children.Add(new TranslateTransform(50, 50)); transf.Children.Add(new ScaleTransform(2, 2)); MyPath.RenderTransform = transf;
I get a drawing of this type:
Instead, if I use a DrawingContext PushTransform this way:
DrawingVisual MyPath = new DrawingVisual(); using (DrawingContext context = MyPath.RenderOpen()) { context.PushTransform(new TranslateTransform(50, 50)); context.PushTransform(new ScaleTransform(2, 2)); context.DrawGeometry(Brushes.Red, null, MyPathGeometry); }
I get a drawing of this type:
Why are the two paths located differently? What is the difference between using PushTransform and RenderTransform? How can I get the same result in both cases? Thanks.
source share