Reflection itself works from what we can see (project with v4 diagram attached), but transform locality is different from RenderTransform. You no longer have to translate by node's origin:
private void ReflectHorizontally(object sender, RoutedEventArgs e)
{
var matrixTransform = new MatrixTransform();
var trs = CreateTRSMatrix(new Vector2(0, 0), rotation: 0, new Vector2(-1, 1));
matrixTransform.Matrix = new Matrix(trs.M11, trs.M12, trs.M21, trs.M22, trs.M31, trs.M32);
var imageNode = diagram.Nodes.First();
imageNode.Transform = matrixTransform;
}
private void ReflectVertically(object sender, RoutedEventArgs e)
{
var matrixTransform = new MatrixTransform();
var trs = CreateTRSMatrix(new Vector2(0, 0), rotation: 0, new Vector2(1, -1));
matrixTransform.Matrix = new Matrix(trs.M11, trs.M12, trs.M21, trs.M22, trs.M31, trs.M32);
var imageNode = diagram.Nodes.First();
imageNode.Transform = matrixTransform;
}
Regards,
Slavcho
Mindfusion