protected override void OnInitialized()
        {
            base.OnInitialized();
            element            = ExtendedItem.Component as FrameworkElement;
            editor             = new InPlaceEditor(ExtendedItem);
            editor.DataContext = element;
            editor.Visibility  = Visibility.Hidden;            // Hide the editor first, It's visibility is governed by mouse events.

            placement = new RelativePlacement(HorizontalAlignment.Left, VerticalAlignment.Top);
            adornerPanel.Children.Add(editor);
            Adorners.Add(adornerPanel);

            designPanel = ExtendedItem.Services.GetService <IDesignPanel>() as DesignPanel;
            Debug.Assert(designPanel != null);

            /* Add mouse event handlers */
            designPanel.PreviewMouseLeftButtonDown += MouseDown;
            designPanel.MouseLeftButtonUp          += MouseUp;
            designPanel.PreviewMouseMove           += MouseMove;

            /* To update the position of Editor in case of resize operation */
            ExtendedItem.PropertyChanged += PropertyChanged;

            eventsAdded = true;
        }
示例#2
0
        private void CreateAdorner()
        {
            if (adornerPanel == null)
            {
                if (cachedAdornerPanel == null)
                {
                    cachedAdornerPanel       = new AdornerPanel();
                    cachedAdornerPanel.Order = AdornerOrder.Background;
                    border = new Border();
                    border.BorderThickness  = new Thickness(1);
                    border.BorderBrush      = new SolidColorBrush(Color.FromRgb(0xCC, 0xCC, 0xCC));
                    border.Background       = Brushes.Transparent;
                    border.IsHitTestVisible = true;
                    border.MouseDown       += border_MouseDown;
                    border.MinWidth         = 1;
                    border.MinHeight        = 1;

                    AdornerPanel.SetPlacement(border, AdornerPlacement.FillContent);
                    cachedAdornerPanel.Children.Add(border);
                }

                adornerPanel = cachedAdornerPanel;
                Adorners.Add(adornerPanel);
            }
        }
示例#3
0
        protected override void Activate(ModelItem item)
        {
            designObject = item.GetCurrentValue() as LinkableControl;//获得被点击的控件对象

            if (designObject != null)
            {
                designCanvas = designObject.Parent as Panel;
                DesignerView v = DesignerView.FromContext(Context);
                adorner = new ControlAdorner(designObject);
                adorner.RenderTransform = new ScaleTransform(v.ZoomLevel, v.ZoomLevel);

                foreach (var pin in adorner.Children)
                {
                    pin.MouseLeftButtonDown += new MouseButtonEventHandler(Pin_MouseLeftButtonDown); //按下左键选中hitPin,开始拖动
                    pin.MouseMove           += new MouseEventHandler(Pin_MouseMove);                 //移动鼠标,开始找寻目标连接节点
                }

                AdornerPanel.SetAdornerHorizontalAlignment(adorner, AdornerHorizontalAlignment.Stretch);
                AdornerPanel.SetAdornerVerticalAlignment(adorner, AdornerVerticalAlignment.Stretch);
                _panel.Children.Add(adorner);

                Adorners.Add(_panel);
                v.ZoomLevelChanged += (s, e) => { adorner.RenderTransform = new ScaleTransform(v.ZoomLevel, v.ZoomLevel); };
            }

            base.Activate(item);
        }
示例#4
0
 /// <summary>
 /// on creation add adornerlayer
 /// </summary>
 public LineExtensionBase()
 {
     _surface           = new Canvas();
     adornerPanel       = new AdornerPanel();
     adornerPanel.Order = AdornerOrder.Foreground;
     adornerPanel.Children.Add(_surface);
     Adorners.Add(adornerPanel);
 }
        protected virtual AdornerPanel CreateAdornerPanel()
        {
            AdornerPanel panel = new AdornerPanel();

            panel.IsContentFocusable = true;
            AdornerProperties.SetOrder(panel, AdornerOrder.Foreground);
            Adorners.Add(panel);
            return(panel);
        }
 private void CreateAdornerPanel()
 {
     if (this.adornersPanel == null)
     {
         adornersPanel = new AdornerPanel();
         adornersPanel.IsContentFocusable = true;
         adornersPanel.Children.Add(designerUI);
         Adorners.Add(adornersPanel);
     }
 }
        protected override void OnInitialized()
        {
            base.OnInitialized();

            var adornerPanel = new AdornerPanel();
            var adorner      = new PanelMoveAdorner(ExtendedItem);

            AdornerPanel.SetPlacement(adorner, AdornerPlacement.FillContent);
            adornerPanel.Children.Add(adorner);
            Adorners.Add(adornerPanel);
        }
 /// <summary>
 /// on creation add adornerlayer
 /// </summary>
 public ArrowLineExtensionBase()
 {
     _surface     = new Canvas();
     adornerPanel = new AdornerPanel()
     {
         MinWidth = 10, MinHeight = 10
     };
     adornerPanel.Order = AdornerOrder.Foreground;
     adornerPanel.Children.Add(_surface);
     Adorners.Add(adornerPanel);
 }
示例#9
0
        public void EnsureAdornerPanelExists()
        {
            if (adornerPanel != null)
            {
                return;
            }

            adornerPanel = new AdornerPanel()
            {
                IsContentFocusable = true
            };
            adornerPanel.Children.Add(adornerView);
            Adorners.Add(adornerPanel);
        }
示例#10
0
        protected override void OnInitialized()
        {
            base.OnInitialized();

            var adornerPanel = new AdornerPanel();
            var border       = new Border();

            border.BorderThickness  = new Thickness(1);
            border.BorderBrush      = new SolidColorBrush(Color.FromRgb(0xCC, 0xCC, 0xCC));
            border.IsHitTestVisible = false;
            AdornerPanel.SetPlacement(border, AdornerPlacement.FillContent);
            adornerPanel.Children.Add(border);
            Adorners.Add(adornerPanel);
        }
示例#11
0
 private void CreateAdorner()
 {
     if (adornerPanel == null)
     {
         adornerPanel       = new AdornerPanel();
         adornerPanel.Order = AdornerOrder.Background;
         var border = new Border();
         border.BorderThickness  = new Thickness(1);
         border.BorderBrush      = new SolidColorBrush(Color.FromRgb(0xCC, 0xCC, 0xCC));
         border.IsHitTestVisible = false;
         AdornerPanel.SetPlacement(border, AdornerPlacement.FillContent);
         adornerPanel.Children.Add(border);
         Adorners.Add(adornerPanel);
     }
 }
示例#12
0
        /// <summary>
        /// Create the default adorners for a rectangle based container
        /// </summary>

        protected void CreateDefaultAdorners()
        {
            if (Adorners.Count > 0)
            {
                LOG.Warn("Adorners are already defined!");
            }
            // Create the GripperAdorners
            Adorners.Add(new ResizeAdorner(this, Positions.TopLeft));
            Adorners.Add(new ResizeAdorner(this, Positions.TopCenter));
            Adorners.Add(new ResizeAdorner(this, Positions.TopRight));
            Adorners.Add(new ResizeAdorner(this, Positions.BottomLeft));
            Adorners.Add(new ResizeAdorner(this, Positions.BottomCenter));
            Adorners.Add(new ResizeAdorner(this, Positions.BottomRight));
            Adorners.Add(new ResizeAdorner(this, Positions.MiddleLeft));
            Adorners.Add(new ResizeAdorner(this, Positions.MiddleRight));
        }
示例#13
0
        // The following method is called when the adorner is activated.
        // It creates the adorner control, sets up the adorner panel,
        // and attaches a ModelItem to the adorned control.
        protected override void Activate(ModelItem item)
        {
            // The adorner is a Rectangle element.
            Rectangle r = new Rectangle();

            r.Width  = 23.0;
            r.Height = 23.0;

            // Setting the color for rectangle using VS theme APIs
            r.Fill = this.ToBrush(VSColorTheme.GetThemedColor(EnvironmentColors.EnvironmentBackgroundColorKey));

            // Set the rectangle's placement in the adorner panel.
            AdornerPanel.SetAdornerHorizontalAlignment(r, AdornerHorizontalAlignment.OutsideLeft);
            AdornerPanel.SetAdornerVerticalAlignment(r, AdornerVerticalAlignment.OutsideTop);

            AdornerPanel p = new AdornerPanel();

            p.Children.Add(r);

            Adorners.Add(p);

            base.Activate(item);
        }
示例#14
0
 protected void Init()
 {
     Adorners.Add(new MoveAdorner(this, Positions.TopLeft));
     Adorners.Add(new MoveAdorner(this, Positions.BottomRight));
 }
示例#15
0
 /// <summary>
 /// Initialize a target gripper
 /// </summary>
 protected void InitAdorner(Color gripperColor, Point location)
 {
     _targetAdorner = new TargetAdorner(this, location);
     Adorners.Add(_targetAdorner);
 }