public virtual ValueSize MeasureElement <TRenderSize>(IVisualElement element, TRenderSize availableSpace) where TRenderSize : IRenderSize { if (!element.IsRequiresMeasure) { lock (_measureLock) { if (_lastMeasurements.TryGetValue(element, out var val)) { LayoutQueue.RemoveVisualFromMeasureQueue(element); return(val); } } } // measure anyways if we know nothing of it...? //return ValueSize.Empty; VisualLineage.PushVisual(element); //_styleContext.PushVisual(element); var layoutElement = GetElementForLayout(element); //////////////////////// var res = MeasureElementImpl(layoutElement, availableSpace); //////////////////////// LayoutQueue.RemoveVisualFromMeasureQueue(element); element.AcceptChanges(ChangeType.Measure); return(res); }