/*/// <summary>
  * ///  Gets the element with the specified Id in the category.
  * /// </summary>
  * /// <param name="id">The Id of the element to get.</param>
  * /// <returns>The element with the specified Id.</returns>
  * public ISpriteElement Get(object id) {
  *      ISpriteElement element = List.Find(e => e.Id.Equals(id));
  *      return element ?? throw new KeyNotFoundException($"Could not find the key \"{id}\"!");
  * }*/
 /// <summary>
 ///  Tries to get the element with the specified Id in the category.
 /// </summary>
 /// <param name="id">The Id of the element to get.</param>
 /// <param name="value">The output element if one was found, otherwise null.</param>
 /// <returns>True if an element with the Id was found, otherwise null.</returns>
 ///
 /// <exception cref="ArgumentNullException">
 ///  <paramref name="id"/> is null.
 /// </exception>
 public bool TryGetValue(object id, out ISpriteElement value)
 {
     if (id == null)
     {
         throw new ArgumentNullException(nameof(id));
     }
     value = List.Find(e => e.Id.Equals(id));
     return(value != null);
 }
 /*/// <summary>
  * ///  Gets the element at the specified index in the category.
  * /// </summary>
  * /// <param name="index">The index of the element to get.</param>
  * /// <returns>The element at the specified index.</returns>
  * public ISpriteElement this[int index] => List[index];*/
 /// <summary>
 ///  Gets the element with the specified Id in the category.
 /// </summary>
 /// <param name="id">The Id of the element to get.</param>
 ///
 /// <exception cref="ArgumentNullException">
 ///  <paramref name="id"/> is null.
 /// </exception>
 /// <exception cref="KeyNotFoundException">
 ///  The element with the <paramref name="id"/> was not found.
 /// </exception>
 public ISpriteElement this[object id] {
     get {
         if (id == null)
         {
             throw new ArgumentNullException(nameof(id));
         }
         ISpriteElement element = List.Find(e => e.Id.Equals(id));
         return(element ?? throw new KeyNotFoundException($"Could not find the key \"{id}\"!"));
     }
 }
 public XmlSpriteElement(ISpriteElement spriteElement)
 {
     if (spriteElement != null) {
         Name = spriteElement.Name;
         X = spriteElement.X;
         Y = spriteElement.Y;
         Height = spriteElement.Height;
         Width = spriteElement.Width;
         OriginX = spriteElement.OriginX;
         OriginY = spriteElement.OriginY;
     }
 }
        /*/// <summary>
         * ///  Creates a group part representing no selection.
         * /// </summary>
         * /// <returns>The created empty group part.</returns>
         * public ISpritePartGroupPart CreateNoneGroupPart() => SpritePartGroupPart.None;*/

        #endregion

        #region ISpriteCategoryBuilder Implementation

        /// <summary>
        ///  Adds the sprite element to the category.
        /// </summary>
        /// <param name="value">The sprite element to add with its Id.</param>
        public void Add(ISpriteElement value) => List.Add(value);