示例#1
0
        public static AdornerCollection GetAdorners(DependencyObject d)
        {
            if (d.GetValue(AdornersProperty) is not AdornerCollection collection)
            {
                var fe = d as FrameworkElement ?? throw new Exception("sdf2 vv");
                collection = new AdornerCollection(fe);
                collection.CollectionChanged += Adorners_CollectionChanged;

                d.SetValue(AdornersProperty, collection);

                fe.DataContextChanged += AdornedFrameworkElement_DataContextChanged;
                fe.Loaded             += AdornedFrameworkElement_Loaded;
                fe.Unloaded           += AdornedFrameworkElement_Unloaded;
            }
            return(collection);

            void AdornedFrameworkElement_Loaded(object sender, RoutedEventArgs args)
            {
                UpdateAdorner((FrameworkElement)sender);
            }

            void AdornedFrameworkElement_Unloaded(object sender, RoutedEventArgs args)
            {
                HideAdorner((FrameworkElement)sender);
            }
        }
示例#2
0
 public static void SetAdorners(DependencyObject d, AdornerCollection value)
 {
     d.SetValue(AdornersProperty, value);
 }