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); }
/// <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(); }
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; } }
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); } }
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); }; }
private void GenerateFigure() { TetrisFigure = FigureHelper.GenerateNewFigure(Random, GameSize); }