protected override void OnRedrawing() { InvalidElementAdorner invalidElementAdorner = this.AdornerList == null || this.AdornerList.Count <= 0 ? (InvalidElementAdorner)null : (InvalidElementAdorner)this.AdornerList[0]; if (invalidElementAdorner == null) { return; } SceneView defaultView = this.Element.ViewModel.DefaultView; bool flag = this.cachedSizes == null || this.cachedTransforms == null; for (int index = 0; !flag && index < invalidElementAdorner.TargetElements.Count; ++index) { SceneElement sceneElement = invalidElementAdorner.TargetElements[index]; if (defaultView.IsInArtboard(sceneElement)) { Size size; Matrix matrix; this.GetElementLayout(sceneElement, out size, out matrix); flag = !size.Equals(this.cachedSizes[index]) || matrix != this.cachedTransforms[index]; } else { flag = true; } } if (!flag) { return; } this.InvalidateStructure(); }
protected override void CreateAdorners() { InvalidElementAdorner invalidElementAdorner = new InvalidElementAdorner((AdornerSet)this); this.AddAdorner((Adorner)invalidElementAdorner); this.cachedSizes = new List <Size>(invalidElementAdorner.TargetElements.Count); this.cachedTransforms = new List <Matrix>(invalidElementAdorner.TargetElements.Count); for (int index = 0; index < invalidElementAdorner.TargetElements.Count; ++index) { Size size; Matrix matrix; this.GetElementLayout(invalidElementAdorner.TargetElements[index], out size, out matrix); this.cachedSizes.Add(size); this.cachedTransforms.Add(matrix); } }