Example #1
0
        protected void Invalidate(InvalidateMode mode)
        {
            if (_layoutSuspended)
            {
                return;
            }

            if (mode == InvalidateMode.Measure)
            {
                _arrangeIsDirty = true;
                _renderIsDirty  = true;
                if (!_measureIsDirty)
                {
                    _measureIsDirty = true;
                    Parent?.Invalidate(mode);
                    Invalidated?.Invoke(this, new InvalidatedEventArgs(mode));
                }
            }
            else if (mode == InvalidateMode.Arrange)
            {
                _renderIsDirty = true;
                if (!_arrangeIsDirty)
                {
                    _arrangeIsDirty = true;
                    Parent?.Invalidate(mode);
                    Invalidated?.Invoke(this, new InvalidatedEventArgs(mode));
                }
            }
            else if (mode == InvalidateMode.Render)
            {
                if (!_renderIsDirty)
                {
                    _renderIsDirty = true;
                    Parent?.Invalidate(mode);
                    Invalidated?.Invoke(this, new InvalidatedEventArgs(mode));
                }
            }
        }
 public InvalidatedEventArgs(InvalidateMode mode)
 {
     Mode = mode;
 }
Example #3
0
 /// <summary>
 /// Indicates that the contents of the CanvasControl need to be redrawn.
 /// </summary>
 /// <param name="mode"> invalidate mode </param>
 public void Invalidate(InvalidateMode mode = InvalidateMode.None) => this.InvalidateAction?.Invoke(mode);