Пример #1
0
        private bool IsNeedToSave(UCCanvas canvas)
        {
            var curfigures = FigureHelper.ToFigureBaseModel(canvas.Model.DrawingLayer.Objects);

            if (oldFigures != null && oldFigures.Count == 0)
            {
                oldFigures = null;
            }
            if (curfigures != null && curfigures.Count == 0)
            {
                curfigures = null;
            }
            string oldHashcode = JsonConvert.SerializeObject(oldFigures);
            string curHashcode = JsonConvert.SerializeObject(curfigures);

            if (oldHashcode.GetHashCode() != curHashcode.GetHashCode())
            {
                var result = XtraMessageBox.Show(string.Format("是否保存对\"{0}\"的修改?", this.FileName), "消息", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
                if (result == DialogResult.Yes)
                {
                    this.SaveFile(canvas.Model.DrawingLayer.Objects);
                    return(true);
                }
                else if (result == DialogResult.No)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            return(true);
        }
Пример #2
0
 /// <summary>
 /// 图形预览
 /// </summary>
 /// <param name="figures"></param>
 public void FigurePreview(List <FigureBaseModel> figures)
 {
     this.figures       = figures;
     this.lblCount.Text = string.Format("Entities Count:{0}", this.figures == null ? 0 : this.figures.Count);
     FigureHelper.AddToDrawObject(this.myCanvas, figures, true);
     this.SetCanvasView();
 }
Пример #3
0
        private void WriteToFile(List <DrawService.CanvasControl.IDrawObject> figures, string fileName)
        {
            string exFileName = Path.GetExtension(fileName);

            switch (exFileName.ToUpper())
            {
            case ".DXF":
            {
                var figs = FigureHelper.ToFigureBaseModel(figures);
                DxfHelper.WriteDXF(figs, fileName);
                this.oldFigures = figs;
            }
            break;

            case ".WXF":
            {
                var figs = FigureHelper.ToFigureBaseModel(figures);
                WxfHelper.XMLWriteToFile(figs, fileName);
                this.oldFigures = figs;
            }
            break;
            }
        }
Пример #4
0
 public void OpenFile(string fileName, UCCanvas canvas, bool isCheck, List <FigureBaseModel> figures = null)
 {
     try
     {
         if (isCheck && !IsNeedToSave(canvas))
         {
             return;
         }
         if (figures == null)
         {
             figures = ParseFigureFile(fileName);
         }
         FigureHelper.AddToDrawObject(canvas, figures, true);
         Messenger.Default.Send <object>(null, "OnPreview");
         this.oldFigures = FigureHelper.ToFigureBaseModel(canvas.Model.DrawingLayer.Objects);
         this.UpdateFilePath(fileName);
         LoggerManager.AddSystemInfos(string.Format("打开文件:{0}", fileName), Logger.LogLevel.Info);
     }
     catch (Exception ex)
     {
         LoggerManager.AddSystemInfos(string.Format("打开文件异常:{0},原因:{1}", fileName, ex.Message), Logger.LogLevel.Error);
         XtraMessageBox.Show(ex.Message, "消息", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Пример #5
0
        private void InitializeBindings()
        {
            var context = new MVVMContext();

            context.ContainerControl = this;
            context.ViewModelType    = typeof(CanvasViewModel);

            var fluent = context.OfType <CanvasViewModel>();

            this.viewModel = context.GetViewModel <CanvasViewModel>();
            this.viewModel.InjectHandler(needToSort =>
            {
                if (needToSort)
                {
                    this.OnSortDrawObjects?.Invoke(this, EventArgs.Empty);
                }
                var tmp   = this.drawingComponent1.GetDrawObjects();
                var part1 = tmp.Where(x => ((DrawObjectBase)x).LayerId == 15).ToList();
                var part2 = tmp.Where(x => ((DrawObjectBase)x).LayerId < 15 || ((DrawObjectBase)x).LayerId == 17).ToList();
                var part3 = tmp.Where(x => ((DrawObjectBase)x).LayerId == 16).ToList();
                if (part1.Any() || part3.Any())
                {
                    tmp.Clear();
                    tmp.AddRange(part1);
                    tmp.AddRange(part2);
                    tmp.AddRange(part3);
                    for (int i = 0; i < tmp.Count; i++)
                    {
                        tmp[i].GroupParam.FigureSN = (i + 1);
                    }
                }
                return(tmp);
            });
            this.viewModel.InjectPaserFunc(x =>
            {
                var items = FigureHelper.ToFigureBaseModel(x);
                items.ForEach(m => m.IsSelected = false);
                return(JsonConvert.SerializeObject(items));
            });
            this.viewModel.Register("MarkClear", this.ClearMark);
            this.viewModel.Register("MarkPointChanged", this.UpdateMarkPoint);
            this.viewModel.Register("MarkPathAdd", this.AddMarkPathPoint);
            this.viewModel.Register("AutoRefresh", this.OnAutoRefreshChanged);
            this.viewModel.Register("MarkFlagChanged", this.UpdateMarkFlag);
            this.viewModel.Register("RelativePosChanged", this.UpdateRelativePos);
            this.viewModel.Register("FiguresMove", this.MoveAll);
            this.viewModel.Register("SetCanvasView", this.SetCanvasView);
            this.viewModel.Register("CanvasStatusChanged", this.OnStatusChanged);
            this.viewModel.Register("UpdateOutline", this.UpdateOutline);

            this.viewModel.InitCanvas();
            this.drawingComponent1.OnPositionChanged += (sender, e) =>
            {
                PointF point = new PointF
                {
                    X = (float)e.CurrentPoint.X,
                    Y = (float)e.CurrentPoint.Y
                };
                this.viewModel.UpdateCanvasPos(point);
            };
        }
Пример #6
0
 private void GenerateFigure()
 {
     TetrisFigure = FigureHelper.GenerateNewFigure(Random, GameSize);
 }