protected FrameworkElement GetItem(int childIndex, IItemProvider itemProvider, bool forceMeasure) { lock (Children.SyncRoot) { bool newlyCreated; FrameworkElement item = itemProvider.GetOrCreateItem(childIndex, this, out newlyCreated); if (item == null) { return(null); } if (newlyCreated) { // VisualParent and item.Screen were set by the item provider item.SetElementState(ElementState.Preparing); if (_elementState == ElementState.Running) { item.SetElementState(ElementState.Running); } } if (newlyCreated || forceMeasure) { SizeF childSize = Orientation == Orientation.Vertical ? new SizeF((float)ActualWidth, float.NaN) : new SizeF(float.NaN, (float)ActualHeight); item.Measure(ref childSize); } return(item); } }
protected FrameworkElement GetItem(int childIndex, IItemProvider itemProvider, bool forceMeasure) { lock (Children.SyncRoot) { bool newlyCreated; FrameworkElement item = itemProvider.GetOrCreateItem(childIndex, this, out newlyCreated); if (item == null) return null; if (newlyCreated) { // VisualParent and item.Screen were set by the item provider item.SetElementState(ElementState.Preparing); if (_elementState == ElementState.Running) item.SetElementState(ElementState.Running); } if (newlyCreated || forceMeasure) { SizeF childSize = Orientation == Orientation.Vertical ? new SizeF((float) ActualWidth, float.NaN) : new SizeF(float.NaN, (float) ActualHeight); item.Measure(ref childSize); } return item; } }