public void Remeasure()
 {
     if (myParent != null)
     {
         myParent.Remeasure();
     }
 }
        public virtual void Remeasure()
        {
            //IWindowlessControl parent = this;
            //IWindowlessControl last = null;
            //while (parent != null)
            //{
            //    parent.NeedsMeasure = true;
            //    last = parent;
            //    parent = parent.Parent;
            //}
            //if (last != this)
            //    last.Remeasure();

            myNeedsMeasure = true;
            if (myParent != null)
            {
                myParent.Remeasure();
            }
        }
        public virtual void Remeasure()
        {
            NeedsMeasure = true;
            if (mySuspendRemeasure)
            {
                return;
            }

            if (myParent != null)
            {
                myParent.Remeasure();
            }
            else if (Control != null && Parent != null)
            {
                if (myInRemeasure)
                {
                    myRemeasureCalledWithin = true;
                    return;
                }

                try
                {
                    myInRemeasure = true;
                    do
                    {
                        myRemeasureCalledWithin = false;
                        Control.Measure(MeasureBounds);
                        SyncWindows();
                    }while (myRemeasureCalledWithin);
                }
                finally
                {
                    myInRemeasure = false;
                }
            }
        }