public void DrawText(Color color, Point point, string text) { SKPaint paint = new SKPaint { Color = FromColor(color), TextSize = 18, IsAntialias = true }; CurrentCanvas.DrawText(text, FromPoint(point), paint); }
public void DrawSquare(Color color, Point point, Size size) { SKPaint paint = new SKPaint { Color = FromColor(color) }; CurrentCanvas.DrawRect(new SKRect(point.X, point.Y, point.X + size.Width, point.Y + size.Height), paint); }
public void ShowPrevCanvas() { if (CanvasHistory.Count < 1) { return; } if (CurrentCanvas != null) { CurrentCanvas.HideCanvas(); } CurrentCanvas = CanvasHistory.Pop(); CurrentCanvas.ShowCanvas(); }
public void DrawTriangle(Color color, Point point, int rotationDegrees = 0) { SKPaint paint = new SKPaint { Color = FromColor(color), Style = SKPaintStyle.Fill, IsAntialias = true }; SKPath path = new SKPath(); // TODO - Make the triangle variable size path.MoveTo(new SKPoint(point.X, point.Y)); path.LineTo(new SKPoint(point.X + 100, point.Y)); path.LineTo(new SKPoint(point.X + 50f, point.Y + 86.6f)); path.MoveTo(new SKPoint(point.X, point.Y)); path.Close(); CurrentCanvas.Save(); CurrentCanvas.RotateDegrees(rotationDegrees, point.X + 50, point.Y + 28.86f); CurrentCanvas.DrawPath(path, paint); CurrentCanvas.Restore(); }
/// <summary> /// 展示当前图表 /// </summary> public void Draw() { if (CurrentCanvas != null) { if (CurrentCanvas.Parent == null) { CurrentCanvas.Parent = this.chartCanvas; } CurrentCanvas.DataContext = this.DataContext; this.LayoutRoot.Children.Clear(); this.chartCanvas.Children.Clear(); if (IsShowLegend) { this.CurrentCanvas.LegendPanel.Visibility = System.Windows.Visibility.Visible; ///初始化图例容器 /////根据图例位置,排例图表与图例的位置 switch (CurrentCanvas.LegendLabelPosition) { case EnumLegendLabelPosition.Bottom: { this.LayoutRoot.Children.Add(this.chartCanvas); this.CurrentCanvas.LegendPanel.Orientation = Orientation.Horizontal; this.CurrentCanvas.LegendPanel.VerticalAlignment = System.Windows.VerticalAlignment.Bottom; this.CurrentCanvas.LegendPanel.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; this.LayoutRoot.Children.Add(this.CurrentCanvas.LegendPanel); chartCanvas.Margin = new Thickness(MarginSize); CurrentCanvas.Width = this.ActualWidth - MarginSize * 2; CurrentCanvas.Height = this.ActualHeight - CurrentCanvas.LegendSize.Height - MarginSize; break; } case EnumLegendLabelPosition.Right: { this.LayoutRoot.Children.Add(this.chartCanvas); this.CurrentCanvas.LegendPanel.Orientation = Orientation.Vertical; this.CurrentCanvas.LegendPanel.VerticalAlignment = System.Windows.VerticalAlignment.Top; this.CurrentCanvas.LegendPanel.HorizontalAlignment = System.Windows.HorizontalAlignment.Right; this.LayoutRoot.Children.Add(this.CurrentCanvas.LegendPanel); chartCanvas.Margin = new Thickness(24, 24, 24, 30); CurrentCanvas.Width = this.ActualWidth - CurrentCanvas.LegendSize.Width - MarginSize; CurrentCanvas.Height = this.ActualHeight - MarginSize * 2; break; } case EnumLegendLabelPosition.Top: { this.CurrentCanvas.LegendPanel.Orientation = Orientation.Horizontal; this.CurrentCanvas.LegendPanel.VerticalAlignment = System.Windows.VerticalAlignment.Top; this.CurrentCanvas.LegendPanel.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; this.LayoutRoot.Children.Add(this.CurrentCanvas.LegendPanel); this.LayoutRoot.Children.Add(this.chartCanvas); CurrentCanvas.Width = this.ActualWidth - MarginSize * 2; CurrentCanvas.Height = this.ActualHeight - CurrentCanvas.LegendSize.Height - MarginSize; chartCanvas.Margin = new Thickness(24, CurrentCanvas.LegendSize.Height, MarginSize, MarginSize); break; } case EnumLegendLabelPosition.Left: { this.CurrentCanvas.LegendPanel.Orientation = Orientation.Vertical; this.CurrentCanvas.LegendPanel.VerticalAlignment = System.Windows.VerticalAlignment.Top; this.CurrentCanvas.LegendPanel.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; this.LayoutRoot.Children.Add(this.CurrentCanvas.LegendPanel); this.LayoutRoot.Children.Add(this.chartCanvas); CurrentCanvas.Width = this.ActualWidth - CurrentCanvas.LegendSize.Width - MarginSize; CurrentCanvas.Height = this.ActualHeight - MarginSize - MarginSize; chartCanvas.Margin = new Thickness(CurrentCanvas.LegendSize.Width, MarginSize, MarginSize, MarginSize); break; } } } else { CurrentCanvas.Width = this.ActualWidth - MarginSize * 2; CurrentCanvas.Height = this.ActualHeight - MarginSize; this.CurrentCanvas.LegendPanel.Visibility = System.Windows.Visibility.Collapsed; this.LayoutRoot.Children.Add(this.chartCanvas); } if (CurrentCanvas.Width > 0 && CurrentCanvas.Height > 0) { CurrentCanvas.Draw(); } } }
public void LoadToolBar() { AdornerLayer al = null; if (CurrentCanvas != null) { al = AdornerLayer.GetAdornerLayer(CurrentCanvas); } SetCanvasSize(); //判断当前页面编辑状态 如果是 则显示工具栏 反之。。。 //DesignMode = MODE.EDIT; if (!(Toolbox != null && PropertyViewWindow != null && ToolbarContent != null && Bd != null)) { return; } if (DesignMode == MODE.EDIT) { Grid grid = this.Template.FindName("gridToolbox", this) as Grid; grid.Visibility = System.Windows.Visibility.Visible; PropertyViewWindow.Visibility = Visibility.Collapsed; ToolbarContent.Visibility = Visibility.Visible; Toolbar.Visibility = Visibility.Visible; Toolbar.IsEnabled = true; if (CurrentCanvas != null) { Toolbox.Visibility = Visibility.Visible; CurrentCanvas.AllowDrop = true; CurrentCanvas.IsEnabled = true; CurrentCanvas.Focusable = true; if (CurrentCanvas.ContextMenu != null) { CurrentCanvas.ContextMenu.Visibility = Visibility.Visible; CurrentCanvas.ContextMenu.Focus(); } CurrentCanvas.Focus(); } if (al != null) { al.IsEnabled = true; } Bd.BorderThickness = new Thickness(1); } else { if (CurrentCanvas != null) { CurrentCanvas.SelectionService.SelectedDesignerContainer.Clear(); CurrentCanvas.AllowDrop = false; CurrentCanvas.ContextMenu.Visibility = Visibility.Collapsed; } Toolbox.Visibility = Visibility.Collapsed; Grid grid = this.Template.FindName("gridToolbox", this) as Grid; grid.Visibility = System.Windows.Visibility.Collapsed; PropertyViewWindow.Visibility = Visibility.Collapsed; ToolbarContent.Visibility = Visibility.Collapsed; Bd.BorderThickness = new Thickness(0); if (CurrentCanvas != null) { CurrentCanvas.Visibility = System.Windows.Visibility.Visible; foreach (var item in CurrentCanvas.Children.OfType <DesignerContainer>()) { item.IsSelected = false; } } if (al != null) { al.IsEnabled = false; } } if (CurrentCanvas == null) { return; } CurrentCanvas.DesignMode = DesignMode; foreach (var item in CurrentCanvas.Children.OfType <DesignerContainer>()) { //em.Editable = editable; //string str = ((DesignerItem)item.DesignerChild)._displayName; //item.IsHitTestVisible = editable; item.IsHitTestVisible = true; if (item.Item == null) { continue; } item.Item.ToolTip = null; } }
public void DrawTurtle(Point point) { CurrentCanvas.DrawBitmap(TurtleImage, FromPoint(point)); }
public void Fill(Color color) { CurrentCanvas.Clear(FromColor(color)); }