Пример #1
0
 protected override Size ArrangeOverride(Size arrangeSize)
 {
     Performance.StartTiming(PerformanceMarks.AdornerArrange);
     if (VisualTreeHelper.GetParent((DependencyObject)this) != null)
     {
         if (this._needEvaluateLayout)
         {
             this._needEvaluateLayout = false;
             this._evaluateLayoutList = (List <UIElement>)null;
             this.EvaluateLayout();
         }
         else if (this._evaluateLayoutList != null)
         {
             List <UIElement> list = this._evaluateLayoutList;
             this._evaluateLayoutList = (List <UIElement>)null;
             DesignerView currentDesignerView = this.CurrentDesignerView;
             foreach (UIElement adorner in list)
             {
                 AdornerProperties.GetLayout((DependencyObject)adorner).EvaluateLayout(currentDesignerView, adorner);
             }
         }
         foreach (UIElement adorner in this.InternalChildren)
         {
             AdornerProperties.GetLayout((DependencyObject)adorner).Arrange(adorner);
         }
     }
     Performance.StopTiming(PerformanceMarks.AdornerArrange);
     return(arrangeSize);
 }
Пример #2
0
 private void EvaluateLayout()
 {
     if (this.Visibility != Visibility.Collapsed && this._hasRendered)
     {
         if (this.VisualChildrenCount <= 0 || this.CurrentDesignerView == null)
         {
             return;
         }
         List <UIElement> list = (List <UIElement>)null;
         foreach (UIElement adorner in this.InternalChildren)
         {
             if (!AdornerProperties.GetLayout((DependencyObject)adorner).EvaluateLayout(this.CurrentDesignerView, adorner))
             {
                 if (list == null)
                 {
                     list = new List <UIElement>();
                 }
                 list.Add(adorner);
             }
         }
         if (list == null)
         {
             return;
         }
         foreach (UIElement element in list)
         {
             this.InternalChildren.Remove(element);
         }
     }
     else
     {
         this._needEvaluateLayout = true;
     }
 }
Пример #3
0
 internal void OnLayoutChanged(UIElement adorner)
 {
     if (VisualTreeHelper.GetParent((DependencyObject)this) == null)
     {
         return;
     }
     AdornerProperties.GetLayout((DependencyObject)adorner).EvaluateLayout(this.CurrentDesignerView, adorner);
     this.InvalidateArrange();
 }
Пример #4
0
 protected override Size MeasureOverride(Size constraint)
 {
     Performance.StartTiming(PerformanceMarks.AdornerMeasure);
     if (VisualTreeHelper.GetParent((DependencyObject)this) != null)
     {
         foreach (UIElement adorner in this.InternalChildren)
         {
             AdornerProperties.GetLayout((DependencyObject)adorner).Measure(adorner, constraint);
         }
     }
     Performance.StopTiming(PerformanceMarks.AdornerMeasure);
     return(new Size());
 }