コード例 #1
0
ファイル: Box.cs プロジェクト: xiaodelea/math-editor
        public override void DrawEquation(System.Windows.Media.DrawingContext dc)
        {
            base.DrawEquation(dc);
            switch (boxType)
            {
            case BoxType.All:
                dc.DrawPolyline(LeftTop, new PointCollection {
                    RightTop, RightBottom, LeftBottom, LeftTop, RightTop
                }, StandardMiterPen);
                break;

            case BoxType.LeftBottom:
                dc.DrawPolyline(LeftTop, new PointCollection {
                    LeftBottom, RightBottom
                }, StandardMiterPen);
                break;

            case BoxType.LeftTop:
                dc.DrawPolyline(RightTop, new PointCollection {
                    LeftTop, LeftBottom
                }, StandardMiterPen);
                break;

            case BoxType.RightBottom:
                dc.DrawPolyline(RightTop, new PointCollection {
                    RightBottom, LeftBottom
                }, StandardMiterPen);
                break;

            case BoxType.RightTop:
                dc.DrawPolyline(LeftTop, new PointCollection {
                    RightTop, RightBottom
                }, StandardMiterPen);
                break;
            }
        }
コード例 #2
0
 public override void DrawEquation(DrawingContext dc)
 {
     dc.DrawPolyline(new Point(Left, Bottom - Height * .4),
                            new PointCollection
                             {
                                 new Point(Left + FontSize * .2, Bottom - Height * .5),
                                 new Point(Left + FontSize * .2, Bottom - Height * .5),
                                 new Point(Left + FontSize * .4, Bottom),
                                 new Point(Left + FontSize * .4, Bottom),
                                 new Point(Right - FontSize * .1, Top + FontSize * .1),
                                 new Point(Right - FontSize * .1, Top + FontSize * .1),
                                 new Point(ParentEquation.Right, Top + FontSize * .1),
                             },
                            StandardPen);
 }
コード例 #3
0
 public override void DrawEquation(DrawingContext dc)
 {
     dc.DrawPolyline(new Point(ParentEquation.Right, Bottom), new PointCollection{new Point(Left, Bottom), new Point(Right, Top)}, StandardRoundPen);
 }
コード例 #4
0
 public override void DrawEquation(DrawingContext dc)
 {
     switch (decorationType)
     {
         case DecorationType.Bar:
             dc.DrawLine(ThinPen, Location, new Point(Right, Top));
             break;
         case DecorationType.DoubleBar:
             dc.DrawLine(ThinPen, Location, new Point(Right, Top));
             dc.DrawLine(ThinPen, new Point(Left, Bottom - ThinPen.Thickness),
                                      new Point(Right, Bottom - ThinPen.Thickness));
             break;
         case DecorationType.Hat:
             dc.DrawPolyline(new Point(Left, Bottom - FontSize * .02),
                             new PointCollection
                             {
                                 new Point(MidX, Top + FontSize * .03),
                                 new Point(Right, Bottom - FontSize * .02)
                             },
                             ThinPen);
             break;
         case DecorationType.LeftArrow:
             firstSign.DrawTextTopLeftAligned(dc, Location);
             dc.DrawLine(ThinPen, new Point(Left + FontSize * .06, MidY), new Point(Right, MidY));
             break;
         case DecorationType.RightArrow:
             firstSign.DrawTextTopRightAligned(dc, new Point(Right, Top));
             dc.DrawLine(ThinPen, new Point(Left, MidY), new Point(Right - FontSize * .06, MidY));
             break;
         case DecorationType.DoubleArrow:
             DrawDoubleArrow(dc);
             break;
         case DecorationType.Parenthesis:
             DrawParentheses(dc);
             break;
         case DecorationType.RightHarpoonUpBarb:
             DrawRightHarpoonUpBarb(dc);
             break;
         case DecorationType.RightHarpoonDownBarb:
             DrawRightHarpoonDownBarb(dc);
             break;
         case DecorationType.LeftHarpoonUpBarb:
             DrawLeftHarpoonUpBarb(dc);
             break;
         case DecorationType.LeftHarpoonDownBarb:
             DrawLeftHarpoonDownBarb(dc);
             break;
         case DecorationType.Tilde:
             firstSign.DrawTextTopLeftAligned(dc, Location);
             break;
         case DecorationType.Tortoise:
             DrawTortoise(dc);
             break;
         case DecorationType.Cross:
             dc.DrawLine(ThinPen, ParentEquation.Location, new Point(Right, ParentEquation.Bottom));
             dc.DrawLine(ThinPen, new Point(Left, ParentEquation.Bottom), new Point(Right, ParentEquation.Top));
             break;
         case DecorationType.LeftCross:
             dc.DrawLine(ThinPen, ParentEquation.Location, new Point(Right, ParentEquation.Bottom));
             break;
         case DecorationType.RightCross:
             dc.DrawLine(ThinPen, new Point(Left, ParentEquation.Bottom), new Point(Right, ParentEquation.Top));
             break;
         case DecorationType.StrikeThrough:
             dc.DrawLine(ThinPen, new Point(Left, ParentEquation.MidY), new Point(Right, ParentEquation.MidY));
             break;
     }
 }
コード例 #5
0
 void PaintRightAngle(DrawingContext dc)
 {
     PointCollection points = new PointCollection { new Point(SignRight, MidY), new Point(SignLeft, Bottom) };
     dc.DrawPolyline(new Point(SignLeft, Top), points, ThinPen);
 }