private void GraphGrid_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintSurfaceEventArgs e) { GridSurface = e.Surface; GridCanvas = GridSurface.Canvas; GridCanvas.Clear(SKColors.White); if (GridYEnabled) { // draw y grid lines pixelsPerUnitY = graphGrid.CanvasSize.Height / (GridYMax - GridYMin); float stepSizeY = GridYStep; float gridYText = GridYMax; for (float y = 0; y <= graphGrid.CanvasSize.Height; y += (stepSizeY * pixelsPerUnitY)) { GridCanvas.DrawLine(0, y, graphGrid.CanvasSize.Width, y, GridPaint1); GridCanvas.DrawText(gridYText.ToString(), 5, y - 5, GridText1); gridYText -= stepSizeY; } } if (GridXEnabled) { // draw x grid lines float pixelsPerUnitX = graphGrid.CanvasSize.Width / (GridXMax - GridXMin); float stepSizeX = GridXStep; for (float x = 0; x <= graphGrid.CanvasSize.Width; x += (stepSizeX * pixelsPerUnitX)) { GridCanvas.DrawLine(x, 0, x, graphGrid.CanvasSize.Height, GridPaint1); } } // rpint the legend float x1 = 300; float x2 = x1 + 120; float x3 = x2 + 120; float x4 = x3 + 120; float x5 = x4 + 120; float y1 = 30; GridCanvas.DrawText(Legend1, x1, y1, GraphPaint1); GridCanvas.DrawText(Legend2, x2, y1, GraphPaint2); GridCanvas.DrawText(Legend3, x3, y1, GraphPaint3); GridCanvas.DrawText(Legend4, x4, y1, GraphPaint4); GridCanvas.DrawText(Legend5, x5, y1, GraphPaint5); if (!AutoScale) { refresh = true; } }
private void GraphGrid_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintSurfaceEventArgs e) { GridSurface = e.Surface; GridCanvas = GridSurface.Canvas; if (GridYEnabled) { // draw y grid lines pixelsPerUnitY = graphGrid.CanvasSize.Height / (GridYMax - GridYMin); float stepSizeY = GridYStep; for (float y = (stepSizeY * pixelsPerUnitY); y < graphGrid.CanvasSize.Height; y += (stepSizeY * pixelsPerUnitY)) { GridCanvas.DrawLine(0, y, graphGrid.CanvasSize.Width, y, GridPaint1); } } if (GridXEnabled) { // draw x grid lines pixelsPerUnitX = graphGrid.CanvasSize.Width / (GridXMax - GridXMin); float stepSizeX = GridXStep; for (float x = (stepSizeX * pixelsPerUnitX); x < graphGrid.CanvasSize.Width; x += (stepSizeX * pixelsPerUnitX)) { GridCanvas.DrawLine(x, 0, x, graphGrid.CanvasSize.Height, GridPaint1); } } GridCanvas.DrawRect(0, 0, graphGrid.CanvasSize.Width - 2, graphGrid.CanvasSize.Height - 2, GridPaint1); refresh = true; }
/// <summary> /// 界面加载 /// </summary> private void SetCanvas() { //固定宽度,便于计算间隔 int height = 30; GridCanvas.Children.Clear(); for (int j = 1; j <= trayNumber; j++) { Border border = new Border() { BorderBrush = new SolidColorBrush(Color.FromRgb(68, 85, 152)), BorderThickness = new Thickness(1), Height = height, Width = 200 }; Canvas canvas = new Canvas() { Background = new SolidColorBrush(Colors.White), ToolTip = "空", Name = "canvas" + j.ToString() }; ContextMenu contextMenu = new ContextMenu(); MenuItem addMenuItem = new MenuItem() { Header = "添加", Name = "admenu" + j.ToString() }; MenuItem updateMnuItem = new MenuItem() { Header = "修改", Name = "upmenu" + j.ToString() }; MenuItem deleteMnuItem = new MenuItem() { Header = "删除", Name = "dlmenu" + j.ToString() }; contextMenu.Items.Add(addMenuItem); contextMenu.Items.Add(updateMnuItem); contextMenu.Items.Add(deleteMnuItem); canvas.ContextMenu = contextMenu; addMenuItem.Click += AddMenuItem_Click; updateMnuItem.Click += UpdateMnuItem_Click; deleteMnuItem.Click += DeleteMnuItem_Click; border.Child = canvas; if (GridCanvas.FindName("canvas" + j.ToString()) == null) { GridCanvas.RegisterName("canvas" + j.ToString(), canvas); GridCanvas.RegisterName("admenu" + j.ToString(), addMenuItem); GridCanvas.RegisterName("upmenu" + j.ToString(), updateMnuItem); GridCanvas.RegisterName("dlmenu" + j.ToString(), updateMnuItem); } //动态定位 int spaceHeight = (370 - trayNumber * height) / (trayNumber + 2); border.Margin = new Thickness(0, spaceHeight, 0, 0); GridCanvas.Children.Add(border); } }
public async void New(object sender, RoutedEventArgs args, bool sameWindow) { if (Config.OpeningBehaviour == OpeningBehaviour.AlwaysOpen) { OpenInANewWindow(); return; } if (sameWindow || Config.OpeningBehaviour == OpeningBehaviour.NeverOpen) { GridCanvas = new GridCanvas(_zoomBorder); FileHandler.New(); _saveButton.IsEnabled = false; return; } var dialog = new Dialog( new[] { "New Window", "This Window", "Cancel" }, "Remember my decision.", "New...", "Open in a new Window?", Dialog.ButtonType.Save, 300, 100 ); var result = await dialog.ShowDialog <bool[]>(this); if (result == null || !result[0]) { return; } if (result[1]) { if (dialog.Checkbox) { Config.OpeningBehaviour = OpeningBehaviour.AlwaysOpen; } OpenInANewWindow(); } else { if (dialog.Checkbox) { Config.OpeningBehaviour = OpeningBehaviour.NeverOpen; } GridCanvas = new GridCanvas(_zoomBorder); FileHandler.New(); _saveButton.IsEnabled = false; } }
private void MoveCanvasGrid_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e) { CanvasGrid.ReleaseMouseCapture(); CanvasGrid.MouseMove -= MoveCanvasGrid_PreviewMouseMove; CanvasGrid.PreviewMouseLeftButtonUp -= MoveCanvasGrid_PreviewMouseLeftButtonUp; var vector = e.GetPosition(RootCanvas) - _originPoint; _offsetPositioning += TranformPositioning(vector); DrawGrid(); GridCanvas.ClearValue(Canvas.LeftProperty); GridCanvas.ClearValue(Canvas.TopProperty); ShapCanvas.ClearValue(Canvas.LeftProperty); ShapCanvas.ClearValue(Canvas.TopProperty); }
public void populateGrid(SimulationServiceReference.productMap productMap) { foreach (SimulationServiceReference.productMapEntry entry in productMap.productMap1.AsEnumerable()) { SimulationServiceReference.position position = entry.key; SimulationServiceReference.product[] products = entry.value; string displayText = products.Length + ""; for (int i = 0; i < products.Length; i += 1) { if (products[i] != null) { displayText = displayText + "\n" + products[i].name; } } UIElement textBox = GridCanvas.getTextBox(displayText); List <UIElement> uiProducts = new List <UIElement>(); uiProducts.Add(textBox); GridC.addProducts(uiProducts, position.x, position.y); } }
public MainWindow() { InitializeComponent(); SetDirectory(); KeyDown += KeyPressed; _filters = new List <FileDialogFilter> { new FileDialogFilter { Extensions = new List <string> { "bhds" }, Name = "BetterHades File" } }; Closing += OnClose; _zoomBorder = this.Find <ZoomBorder>("zoomBorder"); _saveButton = this.Find <MenuItem>("saveButton"); _saveButton.IsEnabled = false; RightClickContextMenu = new RightClickContextMenu(this.Find <ContextMenu>("contextMenu")); GridCanvas = new GridCanvas(_zoomBorder); Config.Init(); UpdateFileHistory(); Dispatcher.UIThread.InvokeAsync( () => { var args = Environment.GetCommandLineArgs(); if (args.Length <= 1) { return; } File.WriteAllText("test.txt", "test\n" + args[1]); FileHandler.Load(args[1]); _saveButton.IsEnabled = true; Config.AddFileToHistory(args[1]); }, DispatcherPriority.Loaded); }
private void GraphGrid_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintSurfaceEventArgs e) { GridSurface = e.Surface; GridCanvas = GridSurface.Canvas; GridCanvas.Clear(SKColors.Black); if (GridYEnabled) { // draw y grid lines pixelsPerUnitY = graphGrid.CanvasSize.Height / (GridYMax - GridYMin); float stepSizeY = GridYStep; for (float y = 0; y <= graphGrid.CanvasSize.Height; y += (stepSizeY * pixelsPerUnitY)) { GridCanvas.DrawLine(0, y, graphGrid.CanvasSize.Width, y, GridPaint1); } } if (GridXEnabled) { // draw x grid lines float pixelsPerUnitX = graphGrid.CanvasSize.Width / (GridXMax - GridXMin); float stepSizeX = GridXStep; for (float x = 0; x <= graphGrid.CanvasSize.Width; x += (stepSizeX * pixelsPerUnitX)) { GridCanvas.DrawLine(x, 0, x, graphGrid.CanvasSize.Height, GridPaint1); } } if (!AutoScale) { refresh = true; } }
private void MapToggle_Unchecked(object sender, RoutedEventArgs e) { GridCanvas.DrawGrid(); }
public Indicator(View Chart, bool Twin = false) : base(Chart) { this.Twin = Twin; Grid.SetColumn(ScaleGrd, 2); pixelsPerDip = VisualTreeHelper.GetDpi(ScaleVisual).PixelsPerDip; IndicatorCanvasBase.AddVisual(IndicatorVisualBase); GridCanvas.AddVisual(GridVisual); ScaleCanvas.AddVisual(ScaleVisual); BaseGrd.MouseEnter += (s, e) => Chart.Interaction = ShoWMenu; BaseGrd.MouseLeave += (s, e) => { if (Chart.Interaction == ShoWMenu) { Chart.Interaction = null; } }; BaseGrd.MouseEnter += CursorShow; BaseGrd.MouseLeave += CursorLeave; BaseGrd.MouseMove += CursorRedraw; BaseGrd.MouseEnter += (s, e) => Chart.SetMoving(s, e); BaseGrd.MouseLeave += (s, e) => Chart.BreakMoving(s, e); BaseGrd.SizeChanged += BaseGrd_SizeChanged; BaseGrd.Children.Add(Selector); BaseGrd.Children.Add(GridCanvas); BaseGrd.ClipToBounds = true; BaseGrd.Background = CursorGrabber; BaseGrd.Cursor = Cursors.None; { var L2grd = new Grid(); { var L3grd = new Grid { RenderTransformOrigin = new Point(1, 0.5), RenderTransform = ScX }; { var L4grd = new Grid { RenderTransformOrigin = new Point(0.5, 0.5) }; { var tgr = new TransformGroup(); { tgr.Children.Add(new RotateTransform(180)); tgr.Children.Add(Translate); tgr.Children.Add(ScY); } L4grd.RenderTransform = tgr; L4grd.Children.Add(IndicatorCanvasBase); } L3grd.Children.Add(L4grd); } L2grd.Children.Add(L3grd); } BaseGrd.Children.Add(L2grd); } if (Twin) { IndicatorCanvasSecond = new DrawingCanvas(); IndicatorVisualSecond = new DrawingVisual(); IndicatorCanvasSecond.AddVisual(IndicatorVisualSecond); BaseGrd.Children.Add(IndicatorCanvasSecond); } BaseGrd.Children.Add(CursorLayer); ScaleGrd.ClipToBounds = true; ScaleGrd.Background = CursorGrabber; ScaleGrd.Children.Add(ScaleCanvas); ScaleGrd.Children.Add(ValueMarkLayer); CursorLinesTransform = (TranslateTransform)Chart.CursorLinesLayer.RenderTransform; CursorLayer.RenderTransform = CursorTransform; Chart.CandlesChanged += ac => Redraw(); Chart.AllHorizontalReset += HorizontalReset; Chart.NewXScale += sc => Task.Run(() => Dispatcher.Invoke(() => ScaleX = sc)); Chart.NewXTrans += tr => Task.Run(() => Dispatcher.Invoke(() => Translate.X = tr)); if (Twin) { Chart.AllHorizontalReset += ac => SecondReset(); Chart.NewXScale += sc => SecondReset(); Chart.NewXTrans += sc => SecondReset(); } Chart.NewFSF += fsf => RedrawScale(); }
public Eraser(GridCanvas canvas) { _canvas = canvas; }
internal Data.Templates.MonumentXml ConvertToWrapper(GridCanvas canvas, AvengersUtd.Explore.Data.Templates.UrbanGameContextWrapper ug_wrapper) { Data.Templates.MonumentXml t_ret = new Data.Templates.MonumentXml(); t_ret.latitudine = Latitudine.ToString().toWrapper(); t_ret.longitudine = Longitudine.ToString().toWrapper(); t_ret.id = this.elementIndex; t_ret.informazione = this.Info.toWrapper(); t_ret.nome = this.Nome.toWrapper(); t_ret.storia = this.Storia.toWrapper(); #region external Elements //foto audio e modelli 3d... string DataFolder = "contents\\"; foreach (var item in canvas.GetElementsConnectedTo(this).OfType<ResourceElement>()) { foreach (AbstractResource res in item.ResourceBox.Items) { switch (res.Type) { case ResourceType.Image: t_ret.FotoResId.Add(res.Id); ug_wrapper.ListFoto.Add(new AvengersUtd.Explore.Data.Templates.Fotografia{ id= res.Id, file = DataFolder+ new FileInfo(res.UriString).Name}); break; case ResourceType.Audio: t_ret.AudioResId.Add(res.Id); ug_wrapper.ListAudioResources.Add(new AvengersUtd.Explore.Data.Templates.RisorsaAudio { id = res.Id, fileAudio = DataFolder + new FileInfo(res.UriString).Name }); break; case ResourceType.Model: t_ret.Ricostruzioni3dId.Add(res.Id); break; default: break; } } } // domande foreach (var item in canvas.GetElementsConnectedTo(this).OfType<QuestionElement>()) { ug_wrapper.ListDomande.Add(item.ConvertToWrapper()); } #endregion return t_ret; }
internal Data.Templates.Tappa ConvertToTemplate(GridCanvas gridCanvas, Data.Templates.UrbanGameTemplateWrapper template) { Data.Templates.Tappa t_tappa = new Data.Templates.Tappa(); t_tappa.descrizione = this.Descrizione.toWrapper(); t_tappa.id = this.elementIndex.ToString(); t_tappa.tipo = this.Tipo; foreach (var item in gridCanvas.GetElementsConnectedTo(this).OfType<QuestionElement>()) { t_tappa.iddomanda.Add(item.QuestionId); } return t_tappa; }
public SquareMaker(GridCanvas canvas) { _canvas = canvas; }