Esempio n. 1
0
        protected override void OnDrop(DragEventArgs e)
        {
            base.OnDrop(e);
            string xamlString = e.Data.GetData("DESIGNER_ITEM") as string;

            if (!String.IsNullOrEmpty(xamlString))
            {
                DesignerItem newItem = null;

                if (XamlReader.Load(XmlReader.Create(new StringReader(xamlString))) is FrameworkElement content)
                {
                    newItem = new DesignerItem
                    {
                        Content        = content,
                        DesignerCanvas = this
                    };

                    var pos = e.GetPosition(this);

                    if (content.MinHeight != 0 && content.MinWidth != 0)
                    {
                        newItem.Width  = content.MinWidth * 2;
                        newItem.Height = content.MinHeight * 2;
                    }
                    else
                    {
                        newItem.Width  = DefaultValues.ItemDefaultWidth;
                        newItem.Height = DefaultValues.ItemDefaultHeight;
                    }

                    DesignerCanvas.SetLeft(newItem, Math.Max(0, pos.X - newItem.Width / 2));
                    DesignerCanvas.SetTop(newItem, Math.Max(0, pos.Y - newItem.Height / 2));
                    Children.Add(newItem);

                    newItem.Position = new Point(DesignerCanvas.GetLeft(newItem), DesignerCanvas.GetTop(newItem));

                    DeselectAll();
                    newItem.IsSelected = true;
                }

                e.Handled = true;
            }
        }
Esempio n. 2
0
        protected override void OnPreviewMouseDown(MouseButtonEventArgs e)
        {
            base.OnPreviewMouseDown(e);

            if (DesignerCanvas != null)
            {
                if ((Keyboard.Modifiers & (ModifierKeys.Shift | ModifierKeys.Control)) != ModifierKeys.None)
                {
                    IsSelected = !IsSelected;
                }
                else
                {
                    if (!IsSelected)
                    {
                        DesignerCanvas.DeselectAll();
                        IsSelected = true;
                    }
                }
            }

            e.Handled = false;
        }
Esempio n. 3
0
        public RubberbandAdorner(DesignerCanvas designerCanvas, Point?dragStartPoint) : base(designerCanvas)
        {
            this.designerCanvas = designerCanvas;
            startPoint          = dragStartPoint;

            adornerCanvas = new Canvas
            {
                Background = Brushes.Transparent
            };

            visuals = new VisualCollection(this)
            {
                adornerCanvas
            };

            rubberband = new Rectangle
            {
                Stroke          = Brushes.Navy,
                StrokeThickness = 1,
                StrokeDashArray = new DoubleCollection(new double[] { 2 })
            };

            adornerCanvas.Children.Add(rubberband);
        }
Esempio n. 4
0
        private static void DpChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            DesignerCanvas dc = (DesignerCanvas)d;

            dc.DesignerControl.RefreshPlaneStates();
        }