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;
            }
        }
Exemple #2
0
        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;
        }
Exemple #3
0
        /// <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);
            }
        }
Exemple #4
0
        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;
            }
        }
Exemple #5
0
        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);
     }
 }
Exemple #7
0
 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;
            }
        }
Exemple #9
0
 private void MapToggle_Unchecked(object sender, RoutedEventArgs e)
 {
     GridCanvas.DrawGrid();
 }
Exemple #10
0
        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();
        }
Exemple #11
0
 public Eraser(GridCanvas canvas)
 {
     _canvas = canvas;
 }
Exemple #12
0
        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;
        }
Exemple #13
0
 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;
 }
Exemple #14
0
 public SquareMaker(GridCanvas canvas)
 {
     _canvas = canvas;
 }