Exemple #1
0
        protected override void OnAttached()
        {
            base.OnAttached();
            // Create adorner
            var adornerLayer = AdornerLayer.GetAdornerLayer(AssociatedObject);

            if (adornerLayer == null)
            {
                return;
            }

            _adornerControl = new ContentControl();

            // Add to adorner
            _templateAdorner = new TemplateAdorner(AssociatedObject, _adornerControl);
            adornerLayer.Add(_templateAdorner);
            _adornerControl.Content = AdornerDataTemplate.LoadContent();

            //BindingOperations.SetBinding(_adornerControl,
            //    ContentControl.DataContextProperty,
            //    new Binding("DataContext")
            //    {
            //        Source = AssociatedObject,
            //    });
        }
Exemple #2
0
 protected override void OnDetaching()
 {
     base.OnDetaching();
     if (null != _templateAdorner)
     {
         AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(AssociatedObject as UIElement);
         adornerLayer.Remove(_templateAdorner);
         BindingOperations.ClearBinding(_templateAdorner, ContentControl.MarginProperty);
         _templateAdorner = null;
         _adornerControl  = null;
     }
 }