Exemplo n.º 1
0
        /// <summary>
        ///     Get X position on canvas based on canvas width, padding and horizontal orientation
        /// </summary>
        /// <param name="formatting"></param>
        /// <param name="canvasWidth"></param>
        /// <returns></returns>
        private static float GetXPosition(SlideTextFormatting.TextBoxFormatting formatting, float canvasWidth)
        {
            float x = formatting.HorizontalPadding;

            if (formatting.HorizontalOrientation == HorizontalOrientation.Center)
            {
                x = canvasWidth / 2f;
            }
            else if (formatting.HorizontalOrientation == HorizontalOrientation.Right)
            {
                x = canvasWidth - formatting.HorizontalPadding;
            }
            return(x);
        }
Exemplo n.º 2
0
        /// <summary>
        ///     Draws a text box at the given coordinates
        /// </summary>
        /// <param name="gr">Graphics area to draw on</param>
        /// <param name="text">Text (array element per line)</param>
        /// <param name="x">Horizontal starting position</param>
        /// <param name="y">Vertical starting position</param>
        /// <param name="formatting">Formatting</param>
        /// <param name="upwards">Calculate upwards from vertical starting position</param>
        /// <param name="lineSpacing">Line spacing</param>
        private void DrawTextBox(Graphics gr, string[] text, float x, float y,
                                 SlideTextFormatting.TextBoxFormatting formatting, bool upwards, int lineSpacing)
        {
            var numberOfLines = text.Length;

            // Measure text height
            var textBlockHeight = gr.MeasureString(string.Join(Environment.NewLine, text), formatting.Text.Font).Height;

            // Calculate y starting position if measuring upwards
            if (upwards)
            {
                var lineSpacingHeight = ((numberOfLines - 1) * lineSpacing);
                y -= textBlockHeight + lineSpacingHeight;
            }

            // Text height
            var textLineHeight = (textBlockHeight / numberOfLines);
            var lineHeight     = textLineHeight + lineSpacing;

            // Draw lines
            DrawLines(gr, text, x, y, formatting.Text, formatting.HorizontalOrientation, lineHeight);
        }