AngleSharp by Florian Rappl

<PackageReference Include="AngleSharp" Version="0.8.0" />

.NET API 1,171,968 bytes

 CssBackgroundPositionProperty

More information available at: https://developer.mozilla.org/en-US/docs/Web/CSS/background-position
using AngleSharp.Css; using AngleSharp.Css.Values; using AngleSharp.Extensions; using System.Collections.Generic; namespace AngleSharp.Dom.Css { internal sealed class CssBackgroundPositionProperty : CssProperty, ICssBackgroundPositionProperty, ICssProperty { internal static readonly Point Default = Point.Center; internal static readonly IValueConverter<Point> SingleConverter = Converters.PointConverter; internal static readonly IValueConverter<Point[]> Converter = SingleConverter.FromList(); private readonly List<Point> _positions; public IEnumerable<Point> Positions => _positions; internal CssBackgroundPositionProperty(CssStyleDeclaration rule) : base(PropertyNames.BackgroundPosition, rule, PropertyFlags.Animatable) { _positions = new List<Point>(); Reset(); } public void SetPositions(IEnumerable<Point> positions) { _positions.Clear(); _positions.AddRange(positions); } internal override void Reset() { _positions.Clear(); _positions.Add(Default); } protected override bool IsValid(ICssValue value) { return Converter.TryConvert(value, SetPositions); } } }