public override void DrawString(string text, MusicFontStyles fontStyle, Primitives.Point location, Primitives.Color color, Model.MusicalSymbol owner) { using (var paint = GetPaint(color, fontStyle)) { Canvas.DrawText(text, (float)location.X, (float)location.Y, paint); } }
protected Primitives.Point TranslateTextLocation(Primitives.Point location, MusicFontStyles fontStyle) { double locationX = location.X + TypedSettings.MusicalFontShiftX; double locationY = location.Y + TypedSettings.MusicalFontShiftY; return(new Primitives.Point(locationX, locationY)); }
protected override void DrawPlaybackCursor(PlaybackCursorPosition position, Primitives.Point start, Primitives.Point end) { if (Settings.RenderingMode != ScoreRenderingModes.Panorama) { start = start.Translate(CurrentScore.DefaultPageSettings); end = end.Translate(CurrentScore.DefaultPageSettings); } if (playbackCursor == null) { playbackCursor = new Line(); playbackCursor.RenderTransform = playbackCursorTransform; playbackCursor.Stroke = new SolidColorBrush(Colors.Magenta); playbackCursor.X1 = 0; playbackCursor.X2 = 0; playbackCursor.Y1 = 0; playbackCursor.Y2 = end.Y - start.Y; playbackCursor.Visibility = BoolToVisibility(position.IsValid); playbackCursor.StrokeThickness = 1; Canvas.Children.Add(playbackCursor); } playbackCursorTransform.X = start.X; playbackCursorTransform.Y = start.Y; }
public override void DrawString(string text, MusicFontStyles fontStyle, Primitives.Point location, Primitives.Color color, MusicalSymbol owner) { if (!EnsureProperPage(owner)) { return; } if (Settings.RenderingMode != ScoreRenderingModes.Panorama) { location = location.Translate(CurrentScore.DefaultPageSettings); } TextBlock textBlock = new TextBlock(); Typeface typeface = TypedSettings.GetFont(fontStyle); textBlock.FontSize = TypedSettings.GetFontSize(fontStyle); textBlock.FontFamily = typeface.FontFamily; textBlock.FontStretch = typeface.Stretch; textBlock.FontStyle = typeface.Style; textBlock.FontWeight = typeface.Weight; textBlock.Text = text; textBlock.Foreground = new SolidColorBrush(ConvertColor(color)); textBlock.Visibility = BoolToVisibility(owner.IsVisible); var baseline = typeface.FontFamily.Baseline * textBlock.FontSize; Canvas.SetLeft(textBlock, location.X); Canvas.SetTop(textBlock, location.Y - baseline); Canvas.Children.Add(textBlock); OwnershipDictionary.Add(textBlock, owner); }
public override void DrawLine(Primitives.Point startPoint, Primitives.Point endPoint, Primitives.Pen pen, Model.MusicalSymbol owner) { using (var paint = GetPaint(pen)) { Canvas.DrawLine((float)startPoint.X, (float)startPoint.Y, (float)endPoint.X, (float)endPoint.Y, paint); } }
public override void DrawLine(Primitives.Point startPoint, Primitives.Point endPoint, Primitives.Pen pen, Model.MusicalSymbol owner) { Canvas.AppendLine("context.beginPath();"); Canvas.AppendLine(string.Format("context.moveTo({0}, {1});", startPoint.X.ToStringInvariant(), startPoint.Y.ToStringInvariant())); Canvas.AppendLine(string.Format("context.lineTo({0}, {1});", endPoint.X.ToStringInvariant(), endPoint.Y.ToStringInvariant())); Canvas.AppendLine("context.stroke();"); }
public override void DrawLine(Primitives.Point startPoint, Primitives.Point endPoint, Primitives.Pen pen, MusicalSymbol owner) { if (!EnsureProperPage(owner)) { return; } if (Settings.RenderingMode != ScoreRenderingModes.Panorama) { startPoint = startPoint.Translate(CurrentScore.DefaultPageSettings); endPoint = endPoint.Translate(CurrentScore.DefaultPageSettings); } var line = new Line(); line.Stroke = new SolidColorBrush(ConvertColor(pen.Color)); line.X1 = startPoint.X; line.X2 = endPoint.X; line.Y1 = startPoint.Y; line.Y2 = endPoint.Y; line.StrokeThickness = pen.Thickness; line.Visibility = BoolToVisibility(owner.IsVisible); Canvas.Children.Add(line); OwnershipDictionary.Add(line, owner); }
protected Primitives.Point TranslateTextLocation(Primitives.Point location, MusicFontStyles fontStyle) { double locationX = location.X + TypedSettings.MusicalFontShiftX; double locationY; switch (fontStyle) { case MusicFontStyles.MusicFont: locationY = location.Y + 8d + TypedSettings.MusicalFontShiftY; break; case MusicFontStyles.StaffFont: locationY = location.Y + 10d + TypedSettings.MusicalFontShiftY; break; case MusicFontStyles.GraceNoteFont: locationY = location.Y + 10.5d + TypedSettings.MusicalFontShiftY; locationX += 0.7d; break; default: locationY = location.Y + TypedSettings.MusicalFontShiftY; break; } return(new Primitives.Point(locationX, locationY)); }
public override void BuildVertex(Primitives.Point position, double width, double height, object originalVertex, DotVertex <int> dotVertex) { var element = this.verticesElements[originalVertex]; UpdatePosition(element, position.X, position.Y, width, height, canvas); Panel.SetZIndex(element, 1); }
public override void DrawBezier(Primitives.Point p1, Primitives.Point p2, Primitives.Point p3, Primitives.Point p4, Primitives.Pen pen, MusicalSymbol owner) { if (!EnsureProperPage(owner)) { return; } if (Settings.RenderingMode != ScoreRenderingModes.Panorama) { p1 = p1.Translate(CurrentScore.DefaultPageSettings); p2 = p2.Translate(CurrentScore.DefaultPageSettings); p3 = p3.Translate(CurrentScore.DefaultPageSettings); p4 = p4.Translate(CurrentScore.DefaultPageSettings); } var bezierCurve = new BezierCurve(); bezierCurve.Thickness = pen.Thickness; bezierCurve.Color = pen.Color; bezierCurve.TranslationX = p1.X; bezierCurve.TranslationY = p1.Y; bezierCurve.X2 = p2.X; bezierCurve.Y2 = p2.Y; bezierCurve.X3 = p3.X; bezierCurve.Y3 = p3.Y; bezierCurve.X4 = p4.X; bezierCurve.Y4 = p4.Y; Canvas.Children.Add(bezierCurve); OwnershipDictionary.Add(bezierCurve, owner); }
public override void DrawBezier(Primitives.Point p1, Primitives.Point p2, Primitives.Point p3, Primitives.Point p4, Primitives.Pen pen, MusicalSymbol owner) { p1 = p1.Translate(CurrentScore.DefaultPageSettings); p2 = p2.Translate(CurrentScore.DefaultPageSettings); p3 = p3.Translate(CurrentScore.DefaultPageSettings); p4 = p4.Translate(CurrentScore.DefaultPageSettings); PathGeometry pathGeom = new PathGeometry(); PathFigure pf = new PathFigure(); pf.StartPoint = new Point(p1.X, p1.Y); BezierSegment bezierSegment = new BezierSegment(); bezierSegment.Point1 = ConvertPoint(p2); bezierSegment.Point2 = ConvertPoint(p3); bezierSegment.Point3 = ConvertPoint(p4); pf.Segments.Add(bezierSegment); pathGeom.Figures.Add(pf); Path path = new Path(); path.Stroke = new SolidColorBrush(ConvertColor(pen.Color)); path.StrokeThickness = pen.Thickness; path.Data = pathGeom; path.Visibility = BoolToVisibility(owner.IsVisible); Windows.UI.Xaml.Controls.Canvas.SetZIndex(path, (int)pen.ZIndex); Canvas.Children.Add(path); OwnershipDictionary.Add(path, owner); }
private void DrawAxis(string axisName, double axisLength, double currentAngle) { var startPosition = new Primitives.Point(CanvasWidth / 2, CanvasHeight / 2); var endPosition = new Primitives.Point(startPosition.TranslateByAngle(currentAngle, axisLength).X, startPosition.TranslateByAngle(currentAngle, axisLength).Y); DrawAxisLine(startPosition, endPosition); DrawAxisLabel(endPosition, currentAngle, axisName); }
public void AddCurve(Primitives.Point point, float radius_x, float radius_y) { _sink.AddArc(new ArcSegment() { Point = point, Size = new SharpDX.Size2F(radius_x, radius_y) }); }
private static bool IsOnBoder(Primitives.Point leftBottom, double width, double height, Point point) { return ((Utils.AreEqual(leftBottom.Y, point.Y) && leftBottom.X <= point.X && point.X <= leftBottom.X + width) || (Utils.AreEqual(leftBottom.X, point.X) && leftBottom.Y <= point.Y && point.Y <= leftBottom.Y + height) || (Utils.AreEqual(leftBottom.Y + height, point.Y) && leftBottom.X <= point.X && point.X <= leftBottom.X + width) || (Utils.AreEqual(leftBottom.X + width, point.X) && leftBottom.Y <= point.Y && point.Y <= leftBottom.Y + height)); }
private void CreateLabel(Primitives.Point pos, FrameworkElement label) { this.canvas.Children.Add(label); label.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); Point p = TransformCoordinates(pos, canvas); Canvas.SetLeft(label, p.X - label.DesiredSize.Width / 2); Canvas.SetTop(label, p.Y - label.DesiredSize.Height / 2); }
public override void DrawBezier(Primitives.Point p1, Primitives.Point p2, Primitives.Point p3, Primitives.Point p4, Primitives.Pen pen, MusicalSymbol owner) { renderingQueue.Enqueue(() => base.DrawBezier(p1, p2, p3, p4, pen, owner)); if (renderingQueue.Count > BufferSize) { FlushBuffer(); } }
public override void DrawString(string text, MusicFontStyles fontStyle, Primitives.Point location, Primitives.Color color, MusicalSymbol owner) { renderingQueue.Enqueue(() => base.DrawString(text, fontStyle, location, color, owner)); if (renderingQueue.Count > BufferSize) { FlushBuffer(); } }
public override void DrawLine(Primitives.Point startPoint, Primitives.Point endPoint, Primitives.Pen pen, MusicalSymbol owner) { renderingQueue.Enqueue(() => base.DrawLine(startPoint, endPoint, pen, owner)); if (renderingQueue.Count > BufferSize) { FlushBuffer(); } }
protected override void DrawAxisLabel(Primitives.Point position, double currentAngle, string axisName) { var textBlock = new TextBlock(); var formattedText = new FormattedText(axisName, CultureInfo.InvariantCulture, FlowDirection.LeftToRight, new Typeface(textBlock.FontFamily, textBlock.FontStyle, textBlock.FontWeight, textBlock.FontStretch), textBlock.FontSize, textBlock.Foreground); textBlock.Text = axisName; Canvas.SetLeft(textBlock, position.X - formattedText.Width / 2 + Control.LabelToAxisDistance * Math.Sin(currentAngle)); Canvas.SetTop(textBlock, position.Y - formattedText.Height / 2 + Control.LabelToAxisDistance * Math.Cos(currentAngle)); Canvas.Children.Add(textBlock); }
public override void DrawString(string text, MusicFontStyles fontStyle, Primitives.Point location, Primitives.Color color, Model.MusicalSymbol owner) { if (!TypedSettings.Fonts.ContainsKey(fontStyle)) { return; //Nie ma takiego fontu zdefiniowanego. Nie rysuj. } location = TranslateTextLocation(location, fontStyle); Canvas.AppendLine(string.Format("context.font = '{0}pt {1}';", TypedSettings.Fonts[fontStyle].Size.ToStringInvariant(), TypedSettings.Fonts[fontStyle].Name)); Canvas.AppendLine(string.Format("context.fillText('{0}', {1}, {2});", text, location.X.ToStringInvariant(), location.Y.ToStringInvariant())); }
private void _skiaView_Touch(object sender, SKTouchEventArgs e) { var scaleDpi = new Primitives.Point(_skiaView.CanvasSize.Width / _skiaView.Width, _skiaView.CanvasSize.Height / _skiaView.Height); var location = new Primitives.Point(e.Location.X / scaleDpi.X, e.Location.Y / scaleDpi.Y); if (e.ActionType == SKTouchAction.Pressed) { _capturedMouseEvents = null; var context = new Framework.Input.MouseEventsContext((Framework.Input.MouseButtons)e.MouseButton, 1, e.WheelDelta); _root.HandleMouseMove(location.X, location.Y, context); _root.HandleMouseDown(location.X, location.Y, context); //_root.HandleMouseUp(location.X, location.Y, context); _capturedMouseEvents = context.CaptureTo; e.Handled = true; } else if (e.ActionType == SKTouchAction.Moved) { var context = new Framework.Input.MouseEventsContext((Framework.Input.MouseButtons)e.MouseButton, 1, e.WheelDelta) { CaptureTo = _capturedMouseEvents }; if (_capturedMouseEvents != null) { _capturedMouseEvents.HandleMouseMove(location.X, location.Y, context); } else { _root.HandleMouseMove(location.X, location.Y, context); } _capturedMouseEvents = context.CaptureTo; e.Handled = true; } else if (e.ActionType == SKTouchAction.Released) { var context = new Framework.Input.MouseEventsContext((Framework.Input.MouseButtons)e.MouseButton, 1, e.WheelDelta) { CaptureTo = _capturedMouseEvents }; if (_capturedMouseEvents != null) { _capturedMouseEvents.HandleMouseUp(location.X, location.Y, context); _capturedMouseEvents = null; } else { _root.HandleMouseUp(location.X, location.Y, new Framework.Input.MouseEventsContext((Framework.Input.MouseButtons)e.MouseButton, 1, e.WheelDelta)); } e.Handled = true; } }
public override void DrawBezier(Primitives.Point p1, Primitives.Point p2, Primitives.Point p3, Primitives.Point p4, Primitives.Pen pen, Model.MusicalSymbol owner) { Canvas.AppendLine("context.beginPath();"); Canvas.AppendLine(string.Format("context.moveTo({0}, {1});", p1.X.ToStringInvariant(), p1.Y.ToStringInvariant())); Canvas.AppendLine(string.Format("context.bezierCurveTo({0},{1},{2},{3},{4},{5});", p2.X.ToStringInvariant(), p2.Y.ToStringInvariant(), p3.X.ToStringInvariant(), p3.Y.ToStringInvariant(), p4.X.ToStringInvariant(), p4.Y.ToStringInvariant())); Canvas.AppendLine("context.stroke();"); }
protected ModalDesktop(int width, int height) { _suspended = true; _mWidth = width; _mHeight = height; _mX = (DesktopManager.ScreenWidth - _mWidth) / 2; _mY = (DesktopManager.ScreenHeight - _mHeight) / 2; _padding = new Primitives.Point(_mX, _mY); _prevDesktop = null; _waitObject = new AutoResetEvent(false); }
public override void DrawLine(Primitives.Point startPoint, Primitives.Point endPoint, Primitives.Pen pen, MusicalSymbol owner) { if (!EnsureProperPage(owner)) { return; } if (Settings.RenderingMode != ScoreRenderingModes.Panorama) { startPoint = startPoint.Translate(CurrentScore.DefaultPageSettings); endPoint = endPoint.Translate(CurrentScore.DefaultPageSettings); } Canvas.DrawLine(ConvertPen(pen), new PointF((float)startPoint.X, (float)startPoint.Y), new PointF((float)endPoint.X, (float)endPoint.Y)); }
protected override void DrawWebLine(Primitives.Point p1, Primitives.Point p2) { var webLine = new Line { Stroke = Control.WeblineStroke, StrokeThickness = Control.WeblineStrokeThickness, StrokeDashArray = new DoubleCollection(new double[] { 4, 4 }), X1 = p1.X, Y1 = p1.Y, X2 = p2.X, Y2 = p2.Y }; Canvas.Children.Add(webLine); }
public override void DrawBezier(Primitives.Point p1, Primitives.Point p2, Primitives.Point p3, Primitives.Point p4, Primitives.Pen pen, MusicalSymbol owner) { if (!EnsureProperPage(owner)) { return; } if (Settings.RenderingMode != ScoreRenderingModes.Panorama) { p1 = p1.Translate(CurrentScore.DefaultPageSettings); p2 = p2.Translate(CurrentScore.DefaultPageSettings); p3 = p3.Translate(CurrentScore.DefaultPageSettings); p4 = p4.Translate(CurrentScore.DefaultPageSettings); } Canvas.DrawBezier(ConvertPen(pen), new PointF((float)p1.X, (float)p1.Y), new PointF((float)p2.X, (float)p2.Y), new PointF((float)p3.X, (float)p3.Y), new PointF((float)p4.X, (float)p4.Y)); }
public override void DrawString(string text, MusicFontStyles fontStyle, Primitives.Point location, Primitives.Color color, MusicalSymbol owner) { TextBlock textBlock = new TextBlock(); textBlock.FontSize = Fonts.GetSize(fontStyle); textBlock.FontFamily = Fonts.Get(fontStyle); textBlock.Text = text; textBlock.Foreground = new SolidColorBrush(ConvertColor(color)); textBlock.UseLayoutRounding = true; textBlock.Visibility = BoolToVisibility(owner.IsVisible); System.Windows.Controls.Canvas.SetLeft(textBlock, location.X + 3d); System.Windows.Controls.Canvas.SetTop(textBlock, location.Y); Canvas.Children.Add(textBlock); OwnershipDictionary.Add(textBlock, owner); }
private List <Tuple <double, double> > CalculateTicks(string axis, double currentAngle, double lineLength, bool alsoDraw) { var ticks = new List <Tuple <double, double> >(); for (int i = 0; i < NumberOfTicks; i++) { var tickOffset = (lineLength / NumberOfTicks) * (i + 1); var tickLocation = new Primitives.Point(CanvasWidth / 2, CanvasHeight / 2).TranslateByAngle(currentAngle, tickOffset); ticks.Add(new Tuple <double, double>(tickLocation.X + 0.5, tickLocation.Y + 0.5)); if (alsoDraw) { DrawTick(tickLocation.X, tickLocation.Y, tickLocation.TranslateByAngle(currentAngle, 1).X, tickLocation.TranslateByAngle(currentAngle, 1).Y); } } return(ticks); }
public override void DrawString(string text, MusicFontStyles fontStyle, Primitives.Point location, Primitives.Color color, MusicalSymbol owner) { if (!EnsureProperPage(owner)) { return; } if (Settings.RenderingMode != ScoreRenderingModes.Panorama) { location = location.Translate(CurrentScore.DefaultPageSettings); } var font = TypedSettings.GetFont(fontStyle); var baselineDesignUnits = font.FontFamily.GetCellAscent(font.Style); var baselinePixels = (baselineDesignUnits * font.Size) / font.FontFamily.GetEmHeight(font.Style); Canvas.DrawString(text, font, new SolidBrush(ConvertColor(color)), new PointF((float)location.X - 4, (float)location.Y - baselinePixels)); }
protected override void DrawAxisLine(Primitives.Point start, Primitives.Point end) { var line = new Line(); line.SetBinding(Shape.StrokeProperty, new Binding(nameof(RadialChart.AxisStroke)) { Source = Control }); line.SetBinding(Shape.StrokeThicknessProperty, new Binding(nameof(RadialChart.AxisStrokeThickness)) { Source = Control }); line.X1 = start.X; line.Y1 = start.Y; line.X2 = end.X; line.Y2 = end.Y; Canvas.Children.Add(line); }