Пример #1
0
        private static DragAdorner <T> getDragDropAdorner(DependencyObject s, bool createIfNotExists = true)
        {
            Window parentWindow = Window.GetWindow(s);

            if (parentWindow != null)
            {
                AdornerDecorator decorator = UITools.FindVisualChildByName <AdornerDecorator>
                                                 (parentWindow, "PART_DragDropAdorner");

                if (decorator == null)
                {
                    throw new ArgumentException("PART_DragDropAdorner not found, or not an AdornerDecorator");
                }
                else
                {
                    AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(decorator);

                    Adorner[] adorners = adornerLayer.GetAdorners(adornerLayer);
                    if (adorners != null)
                    {
                        foreach (var adorner in adorners)
                        {
                            if (adorner is DragAdorner <T> )
                            {
                                return(adorner as DragAdorner <T>);
                            }
                        }
                    }

                    if (createIfNotExists)
                    {
                        DragAdorner <T> newAdorner = new DragAdorner <T>(adornerLayer);
                        adornerLayer.Add(newAdorner);
                        return(newAdorner);
                    }
                }
            }
            return(null);
        }
Пример #2
0
 public static void SetDragAdorner(DependencyObject obj, DragAdorner <T> value)
 {
     obj.SetValue(DragAdornerProperty, value);
 }