Mazin78 Ответов: 1

Как перевернуть pathgeometry в WPF?


У меня есть PathGeometry, который рисует фигуру в wpf. Я хотел бы сохранить первоначальную форму и получить ее перевернутую копию.

Что я уже пробовал:

Я нашел это решение для переворачивания изображений, но я не знаю, как применить его в случае PathGeometry.
img.RenderTransformOrigin = new Point(0.5,0.5);
ScaleTransform flipTrans = new ScaleTransform();
flipTrans.ScaleX = -1;
//flipTrans.ScaleY = -1;
img.RenderTransform = flipTrans;

1 Ответов

Рейтинг:
4

andres_fprado

Следующий метод должен предоставить вам перевернутую траекторию. Просто поместите его в любом месте в вашем классе, и передать ему PathGeometry вы хотите перевернуть.

public static PathGeometry FlipPG(PathGeometry src)
   {
   PathGeometry dst = src.Clone();  // Create a new, cloned, PathGeometry. 
                                    //   Depending on use case, might consider
                                    //   .CloneCore(), .CloneCurrentValue() or
                                    //   .CloneCurrentValueCore() methods 
                                    //   instead.
   ScaleTransform flipTrans = new ScaleTransform()
      {
      ScaleX = -1,
      CenterX = 0.5,           // Check CenterX and CenterY values, might not be
      CenterY = 0.5            //   adequate for your geometry.
      };
   dst.Transform = flipTrans;  // If there are other transforms already applied
                               //   to the original PathGeometry, this must be
                               //   added to a TransformCollection together with
                               //   the preexisting transforms.

   return dst;
   }

Это делается в два этапа, в зависимости от того, что вам нужно сделать:
- Создать копию исходной траектории движения
- Переверните его, применив преобразование

Надеюсь, это поможет. С уважением!!

агентство Франс пресс