private void PropagateUpInvalidationRequest(InvalidationRequestFlag flag) { if (this.visualParent != null) { this.visualParent.InvalidationRequestFromChild(flag, this); } else { IAbcVisual abcVisual = this; AbcContextualPropertyValue controlPropertyValue = abcVisual.GetContextualPropertyValue(AbcControlContextualProperties.ControlPropertyKey); IAbcControl control = (IAbcControl)(controlPropertyValue != null ? ((AbcContextualPropertyValue.AbcObject)controlPropertyValue).value : null); control?.RaiseInvalidationRequest(flag); } }
void IAbcVisual.InvalidationRequestFromChild(InvalidationRequestFlag flag, IAbcVisual child) { switch (flag) { case InvalidationRequestFlag.None: break; case InvalidationRequestFlag.Measure: this.InvalidateMeasure(); break; case InvalidationRequestFlag.Arrange: this.InvalidateArrange(); break; case InvalidationRequestFlag.Paint: this.InvalidatePaint(); break; default: break; } }
void IAbcControl.RaiseInvalidationRequest(InvalidationRequestFlag flag) { switch (flag) { case InvalidationRequestFlag.None: break; case InvalidationRequestFlag.Measure: this.InvalidateMeasure(); break; case InvalidationRequestFlag.Arrange: this.InvalidateArrange(); break; case InvalidationRequestFlag.Paint: this.InvalidatePaint(); break; default: break; } }
internal InvalidationRequestEventArgs(InvalidationRequestFlag flag) { this.flag = flag; }
private void InvalidationRequest(InvalidationRequestFlag flag) { this.invalidationRequest?.Invoke(this, new InvalidationRequestEventArgs(flag)); }