public WorkspaceActionEventArgs(CanvasInfo canvasInfo,DesignItemInfo[] designItemInfos, DesignConnectionInfo[] designConnectionInfos) : base() { this._CanvasInfo = canvasInfo; this._designItemInfos = designItemInfos; this._designConnectionInfos = designConnectionInfos; }
public static DesignItem CreateDesignItem(DesignItemInfo designItemInfo) { var currentDate = DateTime.Now; designItemInfo.CreateDate = currentDate; designItemInfo.ModifyDate = currentDate; var shape = new Shape(); var shapeInfoUnit = new ItemShapeInfoUnit(designItemInfo); shape.ShapeInfoUnit = shapeInfoUnit; shape.IsHitTestVisible = false; shape.Style = Application.Current.Resources[designItemInfo.StyleKey] as Style; if (designItemInfo.SvgBuffer != null) { using (var stream = new MemoryStream(designItemInfo.SvgBuffer)) { var svgDrawing = SvgHelper.CreateSvgImage(stream); //SvgHelper.CreateSvgViewBox(stream); if (svgDrawing != null) { shapeInfoUnit.SvgDrawing = svgDrawing; shape.SetBinding(Shape.ContentProperty, BindingHelper.CreateBinding(shapeInfoUnit, "SvgDrawing")); } } } shape.SetBinding(Shape.TextProperty, BindingHelper.CreateBinding(designItemInfo, "Text")); if (!string.IsNullOrEmpty(designItemInfo.DesignInfo.Backgroud)) { var brushConverter = new BrushConverter(); shape.Background = (Brush)brushConverter.ConvertFromString(designItemInfo.DesignInfo.Backgroud); } var designItem = new DesignItem(designItemInfo.ID); designItem.ParentID = designItemInfo.ParentID; designItem.Content = shape; designItem.SetBinding(DesignItem.LinkButtonVisibilityProperty, BindingHelper.CreateBinding(designItemInfo, "LinkButtonVisibility")); designItem.SetBinding(DesignItem.WidthProperty, BindingHelper.CreateBinding(designItemInfo,"Width")); designItem.SetBinding(DesignItem.HeightProperty, BindingHelper.CreateBinding(designItemInfo, "Height")); designItem.SetBinding(DesignCanvas.LeftProperty, BindingHelper.CreateBinding(designItemInfo, "X")); designItem.SetBinding(DesignCanvas.TopProperty, BindingHelper.CreateBinding(designItemInfo, "Y")); designItem.SetBinding(DesignCanvas.ZIndexProperty, BindingHelper.CreateBinding(designItemInfo, "ZIndex")); return designItem; }
public virtual void RaiseDesignItemLinkButtonDoubleClick(DesignItemInfo designItemInfo) { if (DesignItemLinkButtonDoubleClick != null) { DesignItemLinkButtonDoubleClick(this, new SingleDesignItemActionEventArgs(designItemInfo)); } }
public DesignConnectionValidationEventArgs(DesignItemInfo sourceItemInfo, DesignItemInfo sinkItemInfo) : base() { this._sourceItemInfo = sourceItemInfo; this._sinkItemInfo = sinkItemInfo; }
public MultiDesignItemActionEventArgs(DesignItemInfo[] designItemInfos) : base() { this._designItemInfos = designItemInfos; }
public void SelectDesignItem(DesignItemInfo designItemInfo) { this.canvas.SelectDesignItem(designItemInfo); }
public virtual void RaisePreAddDesignConnection(DesignItemInfo sourceItemInfo, DesignItemInfo sinkItemInfo) { if (PreAddDesignConnection != null) { PreAddDesignConnection(this, new DesignConnectionValidationEventArgs(sourceItemInfo, sinkItemInfo)); } }
public virtual void RaiseDesignWorkspaceSaving(CanvasInfo canvasInfo, DesignItemInfo[] designItemInfos, DesignConnectionInfo[] designConnectionInfos) { if (DesignWorkspaceSaving != null) { DesignWorkspaceSaving(this, new WorkspaceActionEventArgs(canvasInfo, designItemInfos, designConnectionInfos)); } }
public virtual void RaiseDesignItemSelected(DesignItemInfo designItemInfo) { if (DesignItemSelected != null) { DesignItemSelected(this, new SingleDesignItemActionEventArgs(designItemInfo)); } }
public void SelectDesignItem(DesignItemInfo designItemInfo) { var designItem = this.Children.OfType<DesignItem>().First(a => a.ID == designItemInfo.ID); var scrollViewer = this.Parent as ScrollViewer; var itemLeft = DesignCanvas.GetLeft(designItem); var itemTop = DesignCanvas.GetTop(designItem); var itemCenterLeft = itemLeft + designItem.ActualWidth / 2.0; var itemCenterTop = itemTop + designItem.ActualHeight / 2.0; if (!(itemCenterLeft > scrollViewer.HorizontalOffset && itemCenterLeft < scrollViewer.ViewportWidth + scrollViewer.HorizontalOffset && itemCenterTop > scrollViewer.VerticalOffset && itemCenterTop < scrollViewer.ViewportHeight + scrollViewer.VerticalOffset)) { var itemRight = this.ActualWidth - itemLeft - designItem.ActualWidth; var itemBottom = this.ActualHeight - itemTop - designItem.ActualHeight; var itemCenterMinMarginWidth = Math.Min(itemLeft, itemRight) + designItem.ActualWidth / 2.0; var itemCenterMinMarginHeight = Math.Min(itemTop, itemBottom) + designItem.ActualHeight / 2.0; var viewCenterWith = scrollViewer.ViewportWidth / 2.0; var viewCenterHeight = scrollViewer.ViewportHeight / 2.0; var x = 0.0; var y = 0.0; var width = 0.0; var height = 0.0; if (itemCenterMinMarginWidth > viewCenterWith) { x = itemCenterLeft - viewCenterWith; width = viewCenterWith * 2.0; } else { x = itemCenterLeft - itemCenterMinMarginWidth; width = itemCenterMinMarginWidth * 2.0; } if (itemCenterMinMarginHeight > viewCenterHeight) { y = itemCenterTop - viewCenterHeight; height = viewCenterHeight * 2.0; } else { y = itemCenterTop - itemCenterMinMarginHeight; height = itemCenterMinMarginHeight * 2; } this.BringIntoView(new Rect(x, y, width, height)); } else { designItem.BringIntoView(); } this.selectionService.SelectItem(designItem); }
public MultiDesignShapeActionEventArgs(DesignItemInfo[] designItemInfos, DesignConnectionInfo[] designConnectionInfos) : base() { this._designItemInfos = designItemInfos; this._designConnectionInfos = designConnectionInfos; }
public DesignItemCollectionChangedEventArgs(DesignItemInfo[] designItemInfos) : base() { this._designItemInfos = designItemInfos; }
protected override void OnDrop(DragEventArgs e) { base.OnDrop(e); DragObject dragObject = e.Data.GetData(typeof(DragObject)) as DragObject; if (dragObject != null && dragObject.ShapeInfoUnites != null) { if (dragObject.ShapeInfoUnites.Length == 1) { if (dragObject.ShapeInfoUnites[0].ShapeInfo.ShapeType == ShapeType.DesignItem) { var designItemInfo = new DesignItemInfo(dragObject.ShapeInfoUnites[0].ShapeInfo as ItemShapeInfo); designItemInfo.ID = Guid.NewGuid(); designItemInfo.ZIndex = this.Children.Count; var designItemInfos = this.CurrentDesignItemInfos.Union(new DesignItemInfo[] { designItemInfo }).ToArray(); this.RaiseAddingDesignItem(designItemInfos); var designItem = DesignShapeHelper.CreateDesignItem(designItemInfo); Point position = e.GetPosition(this); if (dragObject.DesiredSize.HasValue) { Size desiredSize = dragObject.DesiredSize.Value; designItem.Width = desiredSize.Width; designItem.Height = desiredSize.Height; DesignCanvas.SetLeft(designItem, Math.Max(0, position.X - designItem.Width / 2)); DesignCanvas.SetTop(designItem, Math.Max(0, position.Y - designItem.Height / 2)); } else { DesignCanvas.SetLeft(designItem, Math.Max(0, position.X)); DesignCanvas.SetTop(designItem, Math.Max(0, position.Y)); } Canvas.SetZIndex(designItem, this.Children.Count); this.Children.Add(designItem); SetConnectorDecoratorTemplate(designItem); this.SelectionService.SelectItem(designItem); designItem.Focus(); this.RaiseAddedDesignItem(designItemInfo); this.CurrentDesignItemInfos.Add(designItemInfo); this.RaiseDesignItemCollectionChanged(this.CurrentDesignItemInfos.Where(a=>!a.IsGroup).ToArray()); } else { //ToDo } } else { //ToDo } if (this.selectionService.IsSelectionChanged) { this.selectionService.RaiseDesignShapeSelectAction(); } e.Handled = true; } }
internal void OnLinkButtonClick(DesignItemInfo designItemInfo) { if (this._LinkButtonClick == null) return; this._LinkButtonClick(this, new SingleDesignItemActionEventArgs(designItemInfo)); }
public virtual void RaiseDesignItemMouseRightClick(DesignItemInfo designItemInfo) { if (DesignItemMouseRightClick != null) { DesignItemMouseRightClick(this, new SingleDesignItemActionEventArgs(designItemInfo)); } }
public virtual void RaiseDesignItemMultiSelected(DesignItemInfo[] designItemInfos) { if (DesignItemMultiSelected != null) { DesignItemMultiSelected(this, new MultiDesignItemActionEventArgs(designItemInfos)); } }
public void LoadDesignInfo(CanvasInfo canvasInfo, DesignItemInfo[] designItemInfos, DesignConnectionInfo[] designConnectionInfos) { var originalDesignItemInfos = new List<DesignItemInfo>(); var originalDesignConnectionInfos = new List<DesignConnectionInfo>(); var designItemInfo = (DesignItemInfo)null; var designConnectionInfo = (DesignConnectionInfo)null; foreach (var item in designItemInfos) { designItemInfo = new DesignItemInfo(); designItemInfo.ShapeType = ShapeType.DesignItem; designItemInfo.ShapeCategory = item.ShapeCategory; designItemInfo.SerialNo = item.SerialNo; designItemInfo.GroupID = item.GroupID; designItemInfo.IsInGroup = item.IsInGroup; designItemInfo.StyleKey = item.StyleKey; designItemInfo.Style = item.Style; designItemInfo.ToolTip = item.ToolTip; designItemInfo.IsChecked = item.IsChecked; designItemInfo.IsEnabled = item.IsEnabled; designItemInfo.Text = item.Text; designItemInfo.ID = item.ID; designItemInfo.ZIndex = item.ZIndex; designItemInfo.DesignInfo.Backgroud = item.DesignInfo.Backgroud; designItemInfo.DesignInfo.Foreground = item.DesignInfo.Foreground; designItemInfo.DesignInfo.FontSize = item.DesignInfo.FontSize; designItemInfo.DesignInfo.Bold = item.DesignInfo.Bold; designItemInfo.DesignInfo.Italic = item.DesignInfo.Italic; designItemInfo.DesignInfo.HorizontalAlignment = item.DesignInfo.HorizontalAlignment; designItemInfo.DesignInfo.VerticalAlignment = item.DesignInfo.VerticalAlignment; designItemInfo.ParentID = item.ParentID; designItemInfo.X = item.X; designItemInfo.Y = item.Y; designItemInfo.Width = item.Width; designItemInfo.Height = item.Height; originalDesignItemInfos.Add(designItemInfo); } foreach (var item in designConnectionInfos) { designConnectionInfo = new DesignConnectionInfo(); designConnectionInfo.ShapeType = ShapeType.DesignItem; designConnectionInfo.ShapeCategory = item.ShapeCategory; designConnectionInfo.SerialNo = item.SerialNo; designConnectionInfo.GroupID = item.GroupID; designConnectionInfo.IsInGroup = item.IsInGroup; designConnectionInfo.StyleKey = item.StyleKey; designConnectionInfo.Style = item.Style; designConnectionInfo.ToolTip = item.ToolTip; designConnectionInfo.IsChecked = item.IsChecked; designConnectionInfo.IsEnabled = item.IsEnabled; designConnectionInfo.Text = item.Text; designConnectionInfo.ID = item.ID; designConnectionInfo.ZIndex = item.ZIndex; designConnectionInfo.DesignInfo.Backgroud = item.DesignInfo.Backgroud; designConnectionInfo.DesignInfo.Foreground = item.DesignInfo.Foreground; designConnectionInfo.DesignInfo.FontSize = item.DesignInfo.FontSize; designConnectionInfo.DesignInfo.Bold = item.DesignInfo.Bold; designConnectionInfo.DesignInfo.Italic = item.DesignInfo.Italic; designConnectionInfo.DesignInfo.HorizontalAlignment = item.DesignInfo.HorizontalAlignment; designConnectionInfo.DesignInfo.VerticalAlignment = item.DesignInfo.VerticalAlignment; designConnectionInfo.SourceID = item.SourceID; designConnectionInfo.SourceOrientation = item.SourceOrientation; designConnectionInfo.SinkID = item.SinkID; designConnectionInfo.SinkOrientation = item.SinkOrientation; designConnectionInfo.PathGeometry = item.PathGeometry; originalDesignConnectionInfos.Add(designConnectionInfo); } this.OriginalDesignItemInfos = this.OriginalDesignItemInfos; this.OriginalDesignConnectionInfos = this.OriginalDesignConnectionInfos; this.CurrentDesignItemInfos.AddRange(this.OriginalDesignItemInfos); this.RaiseDesignItemCollectionChanged(this.CurrentDesignItemInfos.ToArray()); }
public virtual void RaiseDesignShapeMultiSelected(DesignItemInfo[] designItemInfos, DesignConnectionInfo[] designConnectionInfos) { if (DesignShapeMultiSelected != null) { DesignShapeMultiSelected(this, new MultiDesignShapeActionEventArgs(designItemInfos, designConnectionInfos)); } }
public SingleDesignItemActionEventArgs(DesignItemInfo designItemInfo) : base() { this._designItemInfo = designItemInfo; }
public virtual void RaiseModifyingDesignShapes(DesignItemInfo[] designItemInfos, DesignConnectionInfo[] designConnectionInfos) { if (ModifyingDesignShapes != null) { ModifyingDesignShapes(this, new MultiDesignShapeActionEventArgs(designItemInfos, designConnectionInfos)); } }
public DesignItemExecutedRoutedEventArgs(DesignItemInfo designItemInfo) : base() { this._designItemInfo = designItemInfo; }
public virtual void RaisePreAddDesignItem(DesignItemInfo[] designItemInfos) { if (PreAddDesignItem != null) { PreAddDesignItem(this, new DesignItemValidationEventArgs(designItemInfos)); } }
public DesignItemValidationEventArgs(DesignItemInfo[] designItemInfos) : base() { this._designItemInfos = designItemInfos; }
public void LoadDesignInfo(CanvasInfo canvasInfo, DesignItemInfo[] designItemInfos, DesignConnectionInfo[] designConnectionInfos) { this.canvas.LoadDesignInfo(canvasInfo, designItemInfos, designConnectionInfos); }
public virtual void RaiseAddedDesignItem(DesignItemInfo designItemInfo) { if (AddedDesignItem != null) { AddedDesignItem(this, new SingleDesignItemActionEventArgs(designItemInfo)); } }
public virtual void RaiseDesignItemCollectionChanged(DesignItemInfo[] designItemInfos) { if (DesignItemCollectionChanged != null) { DesignItemCollectionChanged(this, new DesignItemCollectionChangedEventArgs(designItemInfos)); } }
private ShapeInfoUnit[] ToShapeInfoUnites(DesignItemInfo[] designItemInfos) { return designItemInfos.Select(a => { var shapeInfoUnit = new ItemShapeInfoUnit(a); if (a.SvgBuffer != null) { using (var stream = new MemoryStream(a.SvgBuffer)) { var svgDrawing = SvgHelper.CreateSvgViewBox(stream); if (svgDrawing != null) { shapeInfoUnit.SvgDrawing = svgDrawing; } } } return shapeInfoUnit; } ).ToArray(); }