/// <summary>
        /// A LineDash defines a non-continuous line.
        /// </summary>
        /// <param name="dashstyle">This sets the style of this LineDash</param>
        /// <param name="dots">This is the number of dots in this LineDash</param>
        /// <param name="dotLen">This is the length of a dot</param>
        /// <param name="dashes">This is the number of dashes</param>
        /// <param name="dashLen">This is the length of a single dash</param>
        /// <param name="distance">This is the distance between the dots</param>
        virtual public void SetLineDash(tud.mci.tangram.util.DashStyle dashstyle, short dots, int dotLen, short dashes, int dashLen, int distance)
        {
            try
            {
                LineDash dash = new LineDash((unoidl.com.sun.star.drawing.DashStyle)((int)dashstyle), dots, dotLen, dashes, dashLen, distance);

                int count = this.ChildCount;
                if (count > 0) // group object
                {
                    var children = GetChilderen();
                    for (int i = 0; i < children.Count; i++)
                    {
                        OoShapeObserver child = children.ElementAt(i);

                        if (child != null)
                        {
                            child.SetProperty("LineDash", dash);
                            child.SetLineDash(dashstyle, dots, dotLen, dashes, dashLen, distance);
                        }
                    }
                }
                SetProperty("LineDash", dash);
            }
            catch (System.Exception ex)
            {
                Logger.Instance.Log(LogPriority.DEBUG, this, "[ERROR] Can't set line dash: " + ex);
            }
        }
        /// <summary>
        /// Gets a LineDash defines a non-continuous line.
        /// </summary>
        /// <param name="dashstyle">This sets the style of this LineDash</param>
        /// <param name="dots">This is the number of dots in this LineDash</param>
        /// <param name="dotLen">This is the length of a dot</param>
        /// <param name="dashes">This is the number of dashes</param>
        /// <param name="dashLen">This is the length of a single dash</param>
        /// <param name="distance">This is the distance between the dots</param>
        /// <returns>true and false</returns>
        virtual public bool GetLineDash(out tud.mci.tangram.util.DashStyle dashstyle, out short dots, out int dotLen, out short dashes, out int dashLen, out int distance)
        {
            dashstyle = tud.mci.tangram.util.DashStyle.RECT;
            dots      = dashes = 0;
            dotLen    = dashLen = distance = 0;
            var ld = GetProperty("LineDash");

            if (ld != null && ld is LineDash)
            {
                LineDash linedash = ((LineDash)ld);
                dashstyle = (tud.mci.tangram.util.DashStyle)((int)linedash.Style);
                dots      = linedash.Dots;
                dotLen    = linedash.DotLen;
                dashes    = linedash.Dashes;
                dashLen   = linedash.DashLen;
                distance  = linedash.Distance;
                return(true);
            }
            return(false);
        }