private void ClickPageWidget() { DesignerCanvas designer = VisualTreeHelper.GetParent(VisualTreeHelper.GetParent(VisualTreeHelper.GetParent(this))) as DesignerCanvas; //object cc = VisualTreeHelper.GetParent(this); if (designer == null) { return; } IGroupOperation pageVM = designer.DataContext as IGroupOperation; //this is option for the common widget if ((Keyboard.Modifiers & (ModifierKeys.Shift | ModifierKeys.Control)) != ModifierKeys.None) { int count = designer.SelectedItems.Count(); foreach (BaseWidgetItem item in designer.SelectedItems) { if (item.IsSelected == true && item.ParentID != Guid.Empty) { return; } if (count == 1) { item.IsTarget = true; } } this.IsSelected = !this.IsSelected; if (count == 0 && IsSelected) { this.IsTarget = true; } } else { if (!this.IsSelected) { designer.DeselectAll(); pageVM.DeselectAllGroups(); this.IsSelected = true; _isSelectedDone = true; } } }
private void MoveThumb_DragStarted(object sender, DragStartedEventArgs e) { this.designerItem = DataContext as BaseWidgetItem; _infoItems.Clear(); _groups.Clear(); bIsMousePressMove = false; bIsMouseClicked = true; _totalHorizonOffset = 0; _totaVerticalOffset = 0; if (this.designerItem != null) { this.rotateTransform = this.designerItem.RenderTransform as RotateTransform; this.designerCanvas = VisualTreeHelper.GetParent(VisualTreeHelper.GetParent(VisualTreeHelper.GetParent(this.designerItem))) as DesignerCanvas; _page = (designerCanvas.DataContext as IPagePropertyData).ActivePage; } }
protected void OnPreviewMouseDown2222(MouseButtonEventArgs e) { base.OnPreviewMouseDown(e); _isSelectedDone = false; e.Handled = false; if (IsInEditModel == false) { Focus(); } //return; BaseWidgetItem wdg = e.Source as BaseWidgetItem; if (wdg == null) { return; } if (wdg.ParentID == Guid.Empty) { ClickPageWidget(); } else { DesignerCanvas designer = VisualTreeHelper.GetParent(VisualTreeHelper.GetParent(VisualTreeHelper.GetParent(this))) as DesignerCanvas; IGroupOperation pageVM = designer.DataContext as IGroupOperation; GroupStatus groupStatus = pageVM.GetGroupStatus(this.ParentID); if (groupStatus == GroupStatus.UnSelect) { ClickGroupChildInUnselected(); } else if (groupStatus == GroupStatus.Selected) { ClickGroupChildInSelected(); } else if (groupStatus == GroupStatus.Edit) { ClickGroupChildInEdited(); } } }
private void ClickGroupChildInEdited() { ClickInitialStatus = GroupStatus.Edit; DesignerCanvas designer = VisualTreeHelper.GetParent(VisualTreeHelper.GetParent(VisualTreeHelper.GetParent(this))) as DesignerCanvas; IGroupOperation pageVM = designer.DataContext as IGroupOperation; if ((Keyboard.Modifiers & (ModifierKeys.Shift | ModifierKeys.Control)) != ModifierKeys.None) { this.IsSelected = !this.IsSelected; } else { if (!this.IsSelected) { pageVM.DeselectAllChildren(ParentID); this.IsSelected = true; _isSelectedDone = true; } } }
public PreveiwMoveAdorner(DesignerCanvas designerCanvas) : base(designerCanvas) { this.designerCanvas = designerCanvas; this.adornerCanvas = new Canvas(); this.adornerCanvas.Background = Brushes.Transparent; this.adornerCanvas.IsHitTestVisible = false; this.visuals = new VisualCollection(this); this.visuals.Add(this.adornerCanvas); previewArea = new PreviewVisualMoveControl(); this.adornerCanvas.Children.Add(this.previewArea); previewArea.AddPreviewWidgets(designerCanvas.SelectedItemAndChildren, designerCanvas); this.IsHitTestVisible = false; //this.rubberband = new Rectangle(); //this.rubberband.Stroke = Brushes.Navy; //this.rubberband.StrokeThickness = 1; //this.rubberband.StrokeDashArray = new DoubleCollection(new double[] { 2 }); //this.adornerCanvas.Children.Add(this.rubberband); }
public RubberbandAdorner(DesignerCanvas designerCanvas, Point?dragStartPoint) : base(designerCanvas) { this.designerCanvas = designerCanvas; this.startPoint = dragStartPoint; this.adornerCanvas = new Canvas(); this.adornerCanvas.Background = Brushes.Transparent ; this.visuals = new VisualCollection(this); this.visuals.Add(this.adornerCanvas); this.rubberband = new Rectangle(); this.rubberband.Stroke = Brushes.Navy; this.rubberband.StrokeThickness = 1; this.rubberband.StrokeDashArray = new DoubleCollection(new double[] { 2 }); this.adornerCanvas.Children.Add(this.rubberband); selectionService = ServiceLocator.Current.GetInstance <SelectionServiceProvider>(); }
public void SelectCurrentWidget() { _isSelectedDone = false; if (IsInEditModel == false) { Focus(); } //return; BaseWidgetItem wdg = this as BaseWidgetItem; if (wdg.ParentID == Guid.Empty) { ClickPageWidget(); } else { DesignerCanvas designer = VisualTreeHelper.GetParent(VisualTreeHelper.GetParent(VisualTreeHelper.GetParent(this))) as DesignerCanvas; IGroupOperation pageVM = designer.DataContext as IGroupOperation; GroupStatus groupStatus = pageVM.GetGroupStatus(this.ParentID); if (groupStatus == GroupStatus.UnSelect) { ClickGroupChildInUnselected(); } else if (groupStatus == GroupStatus.Selected) { ClickGroupChildInSelected(); } else if (groupStatus == GroupStatus.Edit) { ClickGroupChildInEdited(); } } }
private void RotateThumb_DragDelta(object sender, DragDeltaEventArgs e) { //Initialize the selected widgets' context when first rotate if (_infoItems.Count <= 0) { WidgetViewModBase wdg = designerItem.DataContext as WidgetViewModBase; if (wdg.IsGroup == false) { wdg.CreateNewPropertyMementos(); wdg.PropertyMementos.AddPropertyMemento(new PropertyMemento("RotateAngle", wdg.RotateAngle, wdg.RotateAngle)); _infoItems.Add(wdg); } else { foreach (WidgetViewModBase item in (wdg as GroupViewModel).WidgetChildren) { item.CreateNewPropertyMementos(); item.CreateNewPropertyMementos(); item.PropertyMementos.AddPropertyMemento(new PropertyMemento("RotateAngle", item.RotateAngle, item.RotateAngle)); item.PropertyMementos.AddPropertyMemento(new PropertyMemento("Left", item.Raw_Left, item.Raw_Left)); item.PropertyMementos.AddPropertyMemento(new PropertyMemento("Top", item.Raw_Top, item.Raw_Top)); _infoItems.Add(item); } } } //Rotate the current widget if (this.designerItem != null && this.canvas != null) { ContentPresenter wrapper = VisualTreeHelper.GetParent(VisualTreeHelper.GetParent(designerItem)) as ContentPresenter; Point currentPoint = Mouse.GetPosition(this.canvas); Vector deltaVector = Point.Subtract(currentPoint, this.centerPoint); double angle = Vector.AngleBetween(this.startVector, deltaVector); RotateTransform rotateTransform = designerItem.RenderTransform as RotateTransform; angle = this.initialAngle + Math.Round(angle, 0); if (angle < 0) { angle += 360; } else if (angle >= 360) { angle -= 360; } wrapper.InvalidateMeasure(); if (this.designerItem.IsGroup == true) { GroupViewModel group = this.designerItem.DataContext as GroupViewModel; DesignerCanvas dc = canvas as DesignerCanvas; foreach (WidgetViewModBase item in group.WidgetChildren) { RotateTransform rt = new RotateTransform(); // bw.RenderTransform as RotateTransform; rt.Angle = angle - groupIntialAngle; rt.CenterX = groupCenterX; rt.CenterY = groupCenterY; double oldAngle = item.RotateAngle; item.RotateAngle = Convert.ToInt16(angle - groupIntialAngle); Rect rect1 = rt.TransformBounds(new Rect(item.Left, item.Top, item.ItemWidth, item.ItemHeight)); Rect rect2 = item.RevertBoundingRectangle(rect1); //item.IsActual = true; item.Raw_Left = rect2.Left; item.Raw_Top = rect2.Top; //only widget can rotate if (item is WidgetRotateViewModBase) { int newAngle = Convert.ToInt16(oldAngle + (angle - groupIntialAngle)) % 360; if (newAngle < 0) { newAngle += 360; } else if (angle >= 360) { newAngle -= 360; } item.RotateAngle = newAngle; } else { item.RotateAngle = 0; } } group.Refresh(); groupIntialAngle = angle; } else { rotateTransform.Angle = angle; } if (this.designerItem.ParentID != Guid.Empty) { IGroupOperation pageVM = canvas.DataContext as IGroupOperation; pageVM.UpdateGroup(this.designerItem.ParentID); } if (this.designerItem.IsGroup) { IGroupOperation pageVM = canvas.DataContext as IGroupOperation; pageVM.UpdateGroup((this.designerItem.DataContext as GroupViewModel).WidgetID); } } }
//protected override void OnMouseUp(MouseButtonEventArgs e) //{ // base.OnMouseUp(e); //} //protected override void OnPreviewMouseLeftButtonUp(MouseButtonEventArgs e) //{ // base.OnPreviewMouseLeftButtonUp(e); //} #region Public function called bye Move Thumb public void OnGroupChildMouseUp() { DesignerCanvas designer = VisualTreeHelper.GetParent(VisualTreeHelper.GetParent(VisualTreeHelper.GetParent(this))) as DesignerCanvas; if (designer == null) { return; } //e.Handled = false; IGroupOperation pageVM = designer.DataContext as IGroupOperation; GroupStatus groupStatus = pageVM.GetGroupStatus(ParentID); if (ClickInitialStatus == GroupStatus.UnSelect && groupStatus == GroupStatus.Selected) { return; } //this is option for the group's child widget if (groupStatus == GroupStatus.UnSelect) { //if ((Keyboard.Modifiers & (ModifierKeys.Shift | ModifierKeys.Control)) != ModifierKeys.None) //{ // pageVM.SetGroupStatus(ParentID, GroupStatus.Selected); //} //else //{ // designer.DeselectAll(); // pageVM.DeselectAllGroups(); // pageVM.SetGroupStatus(ParentID, GroupStatus.Selected); //} } else if (groupStatus == GroupStatus.Selected) { if ((Keyboard.Modifiers & (ModifierKeys.Shift | ModifierKeys.Control)) != ModifierKeys.None) { pageVM.SetGroupStatus(ParentID, GroupStatus.UnSelect); } else { designer.DeselectAll(); pageVM.DeselectAllGroups(); pageVM.SetGroupStatus(ParentID, GroupStatus.Edit); this.IsSelected = true; } } else { //this is option for the common widget if ((Keyboard.Modifiers & (ModifierKeys.Shift | ModifierKeys.Control)) != ModifierKeys.None) { return; } else { if (_isSelectedDone == false) { if (IsSelected == true && designer.SelectedItems.Count() == 1) { return; } pageVM.DeselectAllChildren(ParentID); this.IsSelected = true; } } } }