private void AddButton(string name, double x, double y) { PushButton button = new PushButton(); button.Top = y; button.Left = x; button.Width = 36; button.Height = 36; button.Image = "{Helios}/Images/F-16/mfd-out.png"; button.PushedImage = "{Helios}/Images/F-16/mfd-in.png"; button.Name = name; Children.Add(button); AddTrigger(button.Triggers["pushed"], name); AddTrigger(button.Triggers["released"], name); AddAction(button.Actions["push"], name); AddAction(button.Actions["release"], name); AddAction(button.Actions["set.physical state"], name); }
private PathFigure GetArrowFigure(bool Right, PushButton pushButton) { double y = pushButton.Height / 2d; double arrowLength = pushButton.Width * pushButton.GlyphScale; double padding = (pushButton.Width - arrowLength) / 2d; double arrowLineLength = arrowLength * .6d; double headHeightOffset = pushButton.GlyphThickness * 2d; Point lineStart, lineEnd, head, head1, head2; if (Right) { lineStart = new Point(padding, y); lineEnd = new Point(lineStart.X + arrowLineLength, y); head = new Point(pushButton.Width - padding, y); head1 = new Point(lineEnd.X, y - headHeightOffset); head2 = new Point(lineEnd.X, y + headHeightOffset); } else { lineStart = new Point(pushButton.Width - padding, y); lineEnd = new Point(lineStart.X - arrowLineLength, y); head = new Point(padding, y); head2 = new Point(lineEnd.X, y - headHeightOffset); head1 = new Point(lineEnd.X, y + headHeightOffset); } PathFigure arrow = new PathFigure(); arrow.StartPoint = lineStart; arrow.Segments.Add(new LineSegment(lineEnd, true)); arrow.Segments.Add(new LineSegment(head1, false)); arrow.Segments.Add(new LineSegment(head, false)); arrow.Segments.Add(new LineSegment(head2, false)); arrow.Segments.Add(new LineSegment(lineEnd, false)); return arrow; }