void DrawTopSquare(DrawingContext dc) { PointCollection points = new PointCollection { new Point(Left, Top), new Point(Right, Top), new Point(Right, Bottom), new Point(Right - ThinLineThickness, Bottom), new Point(Right - ThinLineThickness, Top + LineThickness), new Point(Left + ThinLineThickness, Top + LineThickness), new Point(Left + ThinLineThickness, Bottom) }; dc.FillPolylineGeometry(new Point(Left, Bottom), points); }
private void DrawRightHarpoonUpBarb(DrawingContext dc) { PointCollection points = new PointCollection { new Point(Right - FontSize * .3, Top), //new Point(Right - FontSize * .31, Top + FontSize * .041), new Point(Right - FontSize * .18, Bottom - FontSize * .06), new Point(Left, Bottom - FontSize * .06), new Point(Left, Bottom - FontSize * .02) }; dc.FillPolylineGeometry(new Point(Right, Bottom - FontSize * .02), points); }
private void DrawTortoise(DrawingContext dc) { PointCollection points = new PointCollection { new Point(Left + Height * .5, Top), new Point(Right - Height * .5, Top), new Point(Right, Bottom), new Point(Right - Height * .2, Bottom), new Point(Right - Height * .7, Top + Height * .3), new Point(Left + Height * .7, Top + Height * .3), new Point(Left + Height * .2, Bottom) }; dc.FillPolylineGeometry(new Point(Left, Bottom), points); }
void PaintVerticalBar(DrawingContext dc) { PointCollection points = new PointCollection { new Point(SignRight, Top), new Point(SignRight, Bottom), new Point(SignLeft, Bottom), }; dc.FillPolylineGeometry(new Point(SignLeft, Top), points); }
void PaintRound(DrawingContext dc) { if (Height < BracketBreakLimit) { if (SignType == BracketSignType.LeftRound) { signText.DrawTextTopLeftAligned(dc, new Point(SignLeft, Top)); } else { signText.DrawTextTopRightAligned(dc, new Point(SignRight, Top)); } } else { if (SignType == BracketSignType.LeftRound) { double left = Math.Floor(SignLeft); signText.DrawTextTopLeftAligned(dc, new Point(left, Top)); signText2.DrawTextBottomLeftAligned(dc, new Point(left, Bottom)); double top = Top + signText.Extent * .9; double bottom = Bottom - signText2.Extent * .9; //double topExtra = extension.Height + extension.OverhangAfter - extension.Extent; double padding = extension.OverhangLeading; var geometry = extension.BuildGeometry(new Point(left - padding, 0)); PointCollection points = new PointCollection { new Point(geometry.Bounds.Right, top), new Point(geometry.Bounds.Right, bottom), new Point(geometry.Bounds.Left, bottom), }; dc.FillPolylineGeometry(new Point(geometry.Bounds.Left, top), points); //Pen pen = PenManager.GetPen(extension.GetFullWidth() * .68); //dc.DrawLine(pen, new Point(SignLeft + pen.Thickness * .68, top), // new Point(SignLeft + pen.Thickness * .68, bottom)); ////double topExtra = extension.Height + extension.OverhangAfter - extension.Extent; ////double padding = extension.OverhangLeading; ////var geometry = extension.BuildGeometry(new Point(SignLeft - padding, top - topExtra)); ////Pen pen = new Pen(Brushes.Black, geometry.Bounds.Width); ////dc.DrawLine(pen, new Point(SignLeft + pen.Thickness - padding * 1.2, top), //// new Point(SignLeft + LineThickness - padding * 1.2, bottom)); //var geometry2 = extension.BuildGeometry(new Point(SignLeft - 10, (top - topExtra)/2)); //var geometry3 = extension.BuildGeometry(new Point(SignLeft - 20, 10)); //double factor = (bottom - top) / (extension.Extent); //ScaleTransform scale = new ScaleTransform(1.0, factor); //scale.CenterY = extension.Extent / 2; //scale.CenterY = geometry2.Bounds.Height; //geometry2.Transform = scale; //ScaleTransform scale2 = new ScaleTransform(1.0, 3); //geometry3.Transform = scale2; //dc.DrawGeometry(Brushes.Red, null, geometry); //dc.DrawGeometry(Brushes.Blue, null, geometry2); //dc.DrawGeometry(Brushes.Green, null, geometry3); //var geo = Geometry.Combine(geometry, geometry, GeometryCombineMode.Intersect, scale); //dc.DrawGeometry(Brushes.HotPink, null, geo); //dc.PushTransform(scale); //double topExtra = extension.Height + extension.OverhangAfter - extension.Extent; //double padding = extension.OverhangLeading; //dc.DrawText(extension, new Point(SignLeft - padding, top - (topExtra/factor))); //dc.Pop(); //while (top < bottom) //{ // extension.DrawTextTopLeftAligned(dc, new Point(SignLeft, top)); // top += extension.Extent *.85; // double shoot = (top + extension.Extent) - bottom; // if (shoot > 0) // { // top -= shoot; // extension.DrawTextTopLeftAligned(dc, new Point(SignLeft, top)); // break; // } //} } else { signText.DrawTextTopRightAligned(dc, new Point(SignRight, Top)); signText2.DrawTextBottomRightAligned(dc, new Point(SignRight, Bottom)); double top = Top + signText.Extent * .9; double bottom = Bottom - signText2.Extent * .9; var geometry = extension.BuildGeometry(new Point(SignRight - extension.GetFullWidth() - extension.OverhangLeading, 0)); PointCollection points = new PointCollection { new Point(geometry.Bounds.Right, top), new Point(geometry.Bounds.Right, bottom), new Point(geometry.Bounds.Left, bottom), }; dc.FillPolylineGeometry(new Point(geometry.Bounds.Left, top), points); //double topExtra = extension.Height + extension.OverhangAfter - extension.Extent; ////double padding = extension.OverhangLeading; ////var geometry = extension.BuildGeometry(new Point(SignLeft, top)); ////Pen pen = new Pen(Brushes.Black, geometry.Bounds.Width); ////dc.DrawLine(pen, new Point(SignRight - pen.Thickness * .65, top), //// new Point(SignRight - pen.Thickness * .65, bottom)); //dc.DrawLine(new Pen(Brushes.Red, 1), new Point(SignLeft, Top), new Point(SignLeft, Bottom)); //Pen pen = PenManager.GetPen(extension.GetFullWidth() * .68); //dc.DrawLine(pen, new Point(SignRight - pen.Thickness * .68, top), // new Point(SignRight - pen.Thickness * .68, bottom)); //while (top < bottom) //{ // extension.DrawTextTopRightAligned(dc, new Point(left + signText.GetFullWidth(), top)); // top += extension.Extent * .85; // double shoot = (top + extension.Extent) - bottom; // if (shoot > 0) // { // top -= shoot; // extension.DrawTextTopRightAligned(dc, new Point(left + signText.GetFullWidth(), top)); // break; // } //} } } }
void PaintRightSquareBar(DrawingContext dc) { PointCollection points = new PointCollection { new Point(SignRight, Top), new Point(SignRight, Bottom), new Point(SignLeft, Bottom), new Point(SignLeft, Bottom - ThinLineThickness), new Point(SignRight - ThinLineThickness, Bottom - ThinLineThickness), new Point(SignRight - ThinLineThickness, Top + ThinLineThickness), new Point(SignLeft, Top + ThinLineThickness), }; dc.FillPolylineGeometry(new Point(SignLeft, Top), points); dc.DrawLine(ThinPen, new Point(SignRight - FontSize * .12, Top + ThinLineThickness * .5), new Point(SignRight - FontSize * .12, Bottom - ThinLineThickness * .5)); }
void PaintRightSquare(DrawingContext dc) { PointCollection points = new PointCollection { new Point(SignRight, Top), new Point(SignRight, Bottom), new Point(SignLeft, Bottom), new Point(SignLeft, Bottom - ThinLineThickness), new Point(SignRight - LineThickness, Bottom - ThinLineThickness), new Point(SignRight - LineThickness, Top + ThinLineThickness), new Point(SignLeft, Top + ThinLineThickness), }; dc.FillPolylineGeometry(new Point(SignLeft, Top), points); }
void PaintCurly(DrawingContext dc) { if (Height < BracketBreakLimit) { signText.DrawTextTopLeftAligned(dc, new Point(SignLeft, Top)); } else { if (SignType == BracketSignType.LeftCurly) { double left = SignLeft + midText.GetFullWidth() - extension.GetFullWidth(); signText.DrawTextTopLeftAligned(dc, new Point(left, Top)); //dc.DrawLine(new Pen(Brushes.Red, 1), new Point(left, Top), new Point(left, Bottom)); midText.DrawTextTopLeftAligned(dc, new Point(SignLeft, MidY - midText.Extent / 2)); signText2.DrawTextBottomLeftAligned(dc, new Point(left, Bottom)); double top = Top + signText.Extent * .9; double bottom = MidY - midText.Extent * .4; double padding = extension.OverhangLeading; var geometry = extension.BuildGeometry(new Point(left - padding, 0)); PointCollection points = new PointCollection { new Point(geometry.Bounds.Right, top), new Point(geometry.Bounds.Right, bottom), new Point(geometry.Bounds.Left, bottom), }; dc.FillPolylineGeometry(new Point(geometry.Bounds.Left, top), points); //dc.DrawLine(new Pen(Brushes.Red, 1), new Point(Left, top), new Point(Right, top)); //dc.DrawLine(new Pen(Brushes.Red, 1), new Point(Left, bottom), new Point(Right, bottom)); //double padding = extension.OverhangLeading; //double topExtra = extension.Height + extension.OverhangAfter - extension.Extent; //var geometry = extension.BuildGeometry(new Point(SignLeft + midText.GetFullWidth(), top)); //double factor = ((bottom - top) / (extension.Extent)) * .95; //ScaleTransform transform = new ScaleTransform(1, factor); //transform.CenterY = extension.Extent / 2; //geometry.Transform = transform; //dc.DrawGeometry(Brushes.Red, null, geometry); //dc.PushTransform(transform); //Pen pen = new Pen(Brushes.Black, extension.GetFullWidth()); //dc.DrawText(extension, new Point(left - padding, (top/factor) - topExtra)); //dc.Pop(); //dc.DrawLine(pen, new Point(left + pen.Thickness * .65, top), new Point(left + pen.Thickness * .65, bottom)); //Pen pen = PenManager.GetPen(extension.GetFullWidth() * .68); //dc.DrawLine(pen, new Point(left + pen.Thickness * .68, top), // new Point(left + pen.Thickness * .68, bottom)); //while (top < bottom) //{ // extension.DrawTextTopLeftAligned(dc, new Point(left, top)); // top += extension.Extent * .75; // double shoot = (top + extension.Extent * .8) - bottom; // if (shoot > 0) // { // top -= shoot; // extension.DrawTextTopLeftAligned(dc, new Point(left, top)); // break; // } //} top = MidY + midText.Extent * .4; bottom = Bottom - signText2.Extent * .9; points = new PointCollection { new Point(geometry.Bounds.Right, top), new Point(geometry.Bounds.Right, bottom), new Point(geometry.Bounds.Left, bottom), }; dc.FillPolylineGeometry(new Point(geometry.Bounds.Left, top), points); //dc.DrawLine(pen, new Point(left + pen.Thickness - padding * 1.2, top), // new Point(left + pen.Thickness - padding * 1.2, bottom)); //dc.DrawLine(pen, new Point(left + pen.Thickness * .68, top), // new Point(left + pen.Thickness * .68, bottom)); //while (top < bottom) //{ // extension.DrawTextTopLeftAligned(dc, new Point(left, top)); // top += extension.Extent * .75; // double shoot = (top + extension.Extent * .85) - bottom; // if (shoot > 0) // { // top -= shoot; // extension.DrawTextTopLeftAligned(dc, new Point(left, top)); // break; // } //} } else { double left = SignLeft + signText.GetFullWidth() - extension.GetFullWidth(); signText.DrawTextTopLeftAligned(dc, new Point(SignLeft, Top)); midText.DrawTextTopLeftAligned(dc, new Point(left, MidY - midText.Extent / 2)); signText2.DrawTextBottomLeftAligned(dc, new Point(SignLeft, Bottom)); double top = Top + signText.Extent * .9; double bottom = MidY - midText.Extent * .4; double padding = extension.OverhangLeading; var geometry = extension.BuildGeometry(new Point(left - padding, 0)); PointCollection points = new PointCollection { new Point(geometry.Bounds.Right, top), new Point(geometry.Bounds.Right, bottom), new Point(geometry.Bounds.Left, bottom), }; dc.FillPolylineGeometry(new Point(geometry.Bounds.Left, top), points); //double padding = extension.OverhangLeading; //var geometry = extension.BuildGeometry(new Point(SignLeft, top)); //Pen pen = new Pen(Brushes.Black, geometry.Bounds.Width); //dc.DrawLine(pen, new Point(left + pen.Thickness - padding * 1.2, top), // new Point(left + pen.Thickness - padding * 1.2, bottom)); //Pen pen = PenManager.GetPen(extension.GetFullWidth() * .68); //dc.DrawLine(pen, new Point(left + pen.Thickness * .68, top), // new Point(left + pen.Thickness * .68, bottom)); //while (top < bottom) //{ // extension.DrawTextTopLeftAligned(dc, new Point(left, top)); // top += extension.Extent * .75; // double shoot = (top + extension.Extent * .85) - bottom; // if (shoot > 0) // { // top -= shoot; // extension.DrawTextTopLeftAligned(dc, new Point(left, top)); // break; // } //} top = MidY + midText.Extent * .4; bottom = Bottom - signText2.Extent * .9; points = new PointCollection { new Point(geometry.Bounds.Right, top), new Point(geometry.Bounds.Right, bottom), new Point(geometry.Bounds.Left, bottom), }; dc.FillPolylineGeometry(new Point(geometry.Bounds.Left, top), points); //dc.DrawLine(pen, new Point(left + pen.Thickness - padding * 1.2, top), // new Point(left + pen.Thickness - padding * 1.2, bottom)); //dc.DrawLine(pen, new Point(left + pen.Thickness * .68, top), // new Point(left + pen.Thickness * .68, bottom)); //while (top < bottom) //{ // extension.DrawTextTopLeftAligned(dc, new Point(left, top)); // top += extension.Extent * .75; // double shoot = (top + extension.Extent * .85) - bottom; // if (shoot > 0) // { // top -= shoot; // extension.DrawTextTopLeftAligned(dc, new Point(left, top)); // break; // } //} } } }