/// <summary>
        /// Clear the contents
        /// </summary>
        internal override void Clear()
        {
            _elements.Clear();

            var element = new FreeElement();

            element.OnCSUnitsPerPixelChanged(this.CSUnitsPerPixel);
            _elements.Add(element);

            base.Clear();
        }
        /// <summary>
        /// End the measuring
        /// </summary>
        internal override void EndMeasuring()
        {
            base.EndMeasuring();

            ActiveCollection.FinalizeElements();
            CreateFeatureGeometry();

            var element = new FreeElement();

            element.OnCSUnitsPerPixelChanged(this.CSUnitsPerPixel);
            _elements.Add(element);
        }
        /// <summary>
        /// Closes the measurer
        /// </summary>
        internal override void CloseMeasurer()
        {
            if (Coordinates.Count == 0)
            {
                // No Coordinates; so not drawing; clear everything
                Clear();
            }
            else if (Coordinates.Count <= 2)
            {
                if (_elements.Count > 1)
                {
                    Coordinates.Clear();
                    LastCoordinate      = null;
                    LastMouseCoordinate = null;
                    _elements.RemoveAt(_elements.Count - 1);

                    var element = new FreeElement();
                    element.OnCSUnitsPerPixelChanged(this.CSUnitsPerPixel);
                    _elements.Add(element);

                    CreateFeatureGeometry();
                }
                else
                {
                    Clear();
                }
            }
            else
            {
                ActiveCollection.Close();
                EndMeasuring();

                Coordinates.Clear();
                LastCoordinate      = null;
                LastMouseCoordinate = null;
            }
        }