Exemple #1
0
 public override void RemoveMatchingAdornments(HexBufferSpan visualSpan, Predicate <HexAdornmentLayerElement> match)
 {
     if (visualSpan.IsDefault)
     {
         throw new ArgumentException();
     }
     if (match is null)
     {
         throw new ArgumentNullException(nameof(match));
     }
     for (int i = adornmentLayerElements.Count - 1; i >= 0; i--)
     {
         var elem = adornmentLayerElements[i];
         if (elem.VisualSpan is not null && visualSpan.OverlapsWith(GetOverlapsWithSpan(elem.VisualSpan.Value)) && match(elem))
         {
             adornmentLayerElements.RemoveAt(i);
             canvas.Children.RemoveAt(i);
             elem.RemovedCallback?.Invoke(elem.Tag, elem.Adornment);
         }
     }
 }
		public override void RemoveMatchingAdornments(HexBufferSpan visualSpan, Predicate<HexAdornmentLayerElement> match) {
			if (visualSpan.IsDefault)
				throw new ArgumentException();
			if (match == null)
				throw new ArgumentNullException(nameof(match));
			for (int i = adornmentLayerElements.Count - 1; i >= 0; i--) {
				var elem = adornmentLayerElements[i];
				if (elem.VisualSpan != null && visualSpan.OverlapsWith(GetOverlapsWithSpan(elem.VisualSpan.Value)) && match(elem)) {
					adornmentLayerElements.RemoveAt(i);
					canvas.Children.RemoveAt(i);
					elem.RemovedCallback?.Invoke(elem.Tag, elem.Adornment);
				}
			}
		}