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); }
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); }
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); }