Пример #1
0
 public override bool IsAssociated(UIElement adorner, ModelItem item)
 {
     if (adorner == null)
     {
         throw new ArgumentNullException("adorner");
     }
     if (item == null)
     {
         throw new ArgumentNullException("item");
     }
     return(AdornerProperties.GetModel((DependencyObject)adorner) == item);
 }
        protected override List <AutomationPeer> GetChildrenCore()
        {
            List <AutomationPeer>   list1    = new List <AutomationPeer>();
            List <UIElement>        list2    = new List <UIElement>();
            ICollection <UIElement> adorners = this._view.Adorners;

            if (adorners != null)
            {
                foreach (UIElement uiElement1 in new List <UIElement>((IEnumerable <UIElement>)adorners))
                {
                    ModelItem model = AdornerProperties.GetModel((DependencyObject)uiElement1);
                    if (model == this._item)
                    {
                        Panel panel = uiElement1 as Panel;
                        if (panel != null)
                        {
                            foreach (UIElement uiElement2 in panel.Children)
                            {
                                list2.Add(uiElement2);
                            }
                        }
                        else
                        {
                            list2.Add(uiElement1);
                        }
                    }
                    else if (model == null)
                    {
                        Panel panel = uiElement1 as Panel;
                        if (panel != null)
                        {
                            foreach (UIElement uiElement2 in panel.Children)
                            {
                                if (AdornerProperties.GetModel((DependencyObject)uiElement2) == this._item)
                                {
                                    list2.Add(uiElement2);
                                }
                            }
                        }
                    }
                }
            }
            if (list2.Count > 0)
            {
                list1.Add((AutomationPeer) new AdornerNodeAutomationPeer(list2));
            }
            this.PopulateDataChildren(list1);
            return(list1);
        }
Пример #3
0
        void pinAdorner_MouseUp(object sender, MouseButtonEventArgs e)
        {
            var pinAdorner = sender as PinAdorner;

            if (pinAdorner.HitPin != null)
            {
                LinkableControl targetObject = pinAdorner.HitLinkableControl;
                LinkPin         lp1          = pinAdorner.SourcePin;
                LinkPin         lp2          = pinAdorner.HitPin;

                ConnectInfo info1 = lp1.GetInfo();
                ConnectInfo info2 = lp2.GetInfo();

                LinkLine line = new LinkLine(info1, info2);
                //Panel.SetZIndex(line, designCanvas.Children.Count);

                Binding bi1 = new Binding(omap[info1.Orient]);
                bi1.ElementName = designObject.Name;
                line.SetBinding(LinkLine.OriginInfoProperty, bi1);
                Binding bi2 = new Binding(omap[info2.Orient]);
                bi2.ElementName = targetObject.Name;
                line.SetBinding(LinkLine.TargetInfoProperty, bi2);

                var CanvasModelItem            = AdornerProperties.GetModel(adorner).Parent;
                ModelItemCollection myControls = CanvasModelItem.Properties["Children"].Collection;
                ModelItem           myLinkLine = myControls.Add(line);
            }
            if (pinAdorner.HitLinkableControl != null)
            {
                pinAdorner.HitLinkableControl.IsLinkDragOver = false;
            }

            hitPin = null;
            if (adorner.IsMouseCaptured)
            {
                adorner.ReleaseMouseCapture();
            }
            _panel.Children.Remove(pinAdorner);
        }
Пример #4
0
        private static void EnsureActualValues(DependencyObject adorner)
        {
            ViewItem  view  = AdornerProperties.GetView(adorner);
            ModelItem model = AdornerProperties.GetModel(adorner);

            BaseAdornerLayout.LayoutCache cache = BaseAdornerLayout.GetCache(adorner);
            if (cache.Model == model && !(cache.View != view))
            {
                return;
            }
            if (cache.Model != null)
            {
                cache.Model.PropertyChanged -= new PropertyChangedEventHandler(BaseAdornerLayout.OnModelItemPropertyChanged);
            }
            cache.Model = model;
            cache.View  = view;
            if (model == null)
            {
                return;
            }
            model.PropertyChanged += new PropertyChangedEventHandler(BaseAdornerLayout.OnModelItemPropertyChanged);
        }