private static PathFigure GetVerticalStrokeEndFigure(StateButton sender)
        {
            Rect   iconRect  = sender.IconRect;
            double thickness = iconRect.Height * iconVerticalStrokeThicknessFactor;

            Point p11 = iconRect.TopRight;
            Point p12 = iconRect.BottomRight;
            Point p21 = new Point(iconRect.X + iconRect.Width - thickness, iconRect.Y);
            Point p22 = new Point(iconRect.X + iconRect.Width - thickness, iconRect.Y + iconRect.Height);

            return(StateButton.GetFigure(p11, p12, p22, p21));
        }
        private static PathFigure GetEndBracketFigure(StateButton sender)
        {
            Rect   iconRect        = sender.IconRect;
            double thickness       = iconRect.Height * iconVerticalStrokeThicknessFactor;
            double beginCloseWidth = iconRect.Width * highlightIconBeginCloseWidthFactor + thickness;
            double offsetX         = iconRect.X + iconRect.Width * (1 + highlightIconVerticalStrokeDistanceFactor) / 2;

            Point pTopRight         = new Point(offsetX, iconRect.Y);
            Point pBottomRight      = new Point(offsetX, iconRect.Y + iconRect.Height);
            Point pTopInner         = new Point(offsetX - thickness, iconRect.Y + thickness);
            Point pBottomInner      = new Point(offsetX - thickness, iconRect.Y + iconRect.Height - thickness);
            Point pTopLeftTop       = new Point(offsetX - beginCloseWidth, iconRect.Y);
            Point pTopLeftBottom    = new Point(offsetX - beginCloseWidth, iconRect.Y + thickness);
            Point pBottomLeftTop    = new Point(offsetX - beginCloseWidth, iconRect.Y + iconRect.Height - thickness);
            Point pBottomLeftBottom = new Point(offsetX - beginCloseWidth, iconRect.Y + iconRect.Height);

            return(StateButton.GetFigure(pTopRight, pTopLeftTop, pTopLeftBottom, pTopInner,
                                         pBottomInner, pBottomLeftTop, pBottomLeftBottom, pBottomRight));
        }