示例#1
0
        /// <summary>
        /// Renders the middle portion of the progress bar that contains the message and progress fill.  You must have called Render() ahead of time for this
        /// to make sense.
        /// </summary>
        public void Update()
        {
            var maxMessageLength = Width - 4;

            renderedMessage = Message;

            renderedMessage = renderedMessage.Replace("{%}", Math.Round(Progress * 100, 1) + " %");

            if (renderedMessage.Length > maxMessageLength)
            {
                renderedMessage = renderedMessage.Substring(0, maxMessageLength - 3) + "...";
            }

            while (renderedMessage.Length < maxMessageLength)
            {
                renderedMessage += " ";
            }

            if (indeterminateHighlightIndex < 0)
            {
                int toHighlight = (int)Math.Round(Progress * renderedMessage.Length);
                renderedMessage = renderedMessage.HighlightSubstring(0, toHighlight, MessageFillColor, FillColor);
            }
            else
            {
                renderedMessage = renderedMessage.HighlightSubstring(indeterminateHighlightIndex, 1, MessageFillColor, FillColor);
            }

            messageStart.Restore();
            Console.Write(renderedMessage);
            wiper.MoveCursorToLineAfterBottom();
        }
示例#2
0
        /// <summary>
        /// Renders the middle portion of the progress bar that contains the message and progress fill.  You must have called Render() ahead of time for this
        /// to make sense.
        /// </summary>
        public void Update()
        {
            var maxMessageLength = Width - 4;
            renderedMessage = Message;

            renderedMessage = renderedMessage.Replace("{%}", Math.Round(Progress * 100, 1) + " %");

            if (renderedMessage.Length > maxMessageLength)
            {
                renderedMessage = renderedMessage.Substring(0, maxMessageLength - 3) + "...";
            }

            while (renderedMessage.Length < maxMessageLength)
            {
                renderedMessage += " ";
            }

            if (indeterminateHighlightIndex < 0)
            {
                int toHighlight = (int)Math.Round(Progress * renderedMessage.Length);
                renderedMessage = renderedMessage.HighlightSubstring(0, toHighlight, MessageFillColor, FillColor);
            }
            else
            {
                renderedMessage = renderedMessage.HighlightSubstring(indeterminateHighlightIndex, 1, MessageFillColor, FillColor);
            }

            messageStart.Restore();
            Console.Write(renderedMessage);
            wiper.MoveCursorToLineAfterBottom();
        }