Slavcho wrote on May 28
th, 2017 at 9:30am:
Setting these properties is all the control does when it detects edge-over-edge drag, so you should be able to implement mirroring as well by setting them from other event handlers -
void OnObjectFlipHorz(object sender, RoutedEventArgs e)
{
var shapeNode = diagram.ActiveItem as ShapeNode;
if (shapeNode != null)
shapeNode.FlipX = !shapeNode.FlipX;
}
Regards,
Slavcho
In the button's click event,I wrote the code
var shape = view.ActiveItem as ShapeNode;
If (shapeNode! = Null)
ShapeNode.FlipX =! ShapeNode.FlipX;
but it does not work, my node is derived from the shapenode,and I override from the draw method. Is there a problem with my draw method? For example, I have a straight draw method:
public override void Draw(DrawingContext graphics, MindFusion.Diagramming.Wpf.RenderOptions options)
{
base.Draw(graphics, options);
TranslateTransform translate = new TranslateTransform(-Bounds.X, -Bounds.Y);
graphics.PushTransform(translate);
if (this.IsMove)
{
Point oldPoint = translate.Transform(OldBounds.Location);
TranslateTransform tanslate = new TranslateTransform(-oldPoint.X, -oldPoint.Y);
StartPoint = tanslate.Transform(StartPoint);
EndPoint = tanslate.Transform(EndPoint);
StartPoint = PubTools.SnapPointConvert(StartPoint);
EndPoint = PubTools.SnapPointConvert(EndPoint);
Bounds = new Rect(PubTools.SnapPointConvert(Bounds.Location),
PubTools.SnapPointConvert(new Point(Bounds.Location.X + Bounds.Width, Bounds.Y + Bounds.Height)));
OldBounds = Bounds;
SetDisplayProperty();
}
if (IsStartCreate || IsComplete)
{
if (EndPoint == new Point(-1, -1) || StartPoint == new Point(-1, -1))
{
return;
}
Point start_Point = StartPoint;
Point end_Point = EndPoint;
graphics.DrawLine(new Pen(Stroke, StrokeThickness), start_Point, end_Point);
}
graphics.Pop();
}