56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System.Drawing;
 | 
						|
 | 
						|
namespace DevComponents.DotNetBar.Charts
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Provides helpers when working with text.
 | 
						|
    /// </summary>
 | 
						|
    internal static class TextHelper
 | 
						|
    {
 | 
						|
        private static int _textMarkupCultureSpecific = 3;
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Get or sets the text-markup padding for text
 | 
						|
        /// measurement when running on Japanese version of Windows.
 | 
						|
        /// </summary>
 | 
						|
        public static int TextMarkupCultureSpecificPadding
 | 
						|
        {
 | 
						|
            get { return _textMarkupCultureSpecific; }
 | 
						|
            set { _textMarkupCultureSpecific = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// MeasureText always adds about 1/2 em width of white space on the right,
 | 
						|
        /// even when NoPadding is specified. It returns zero for an empty string.
 | 
						|
        /// To get the precise string width, measure the width of a string containing a
 | 
						|
        /// single period and subtract that from the width of our original string plus a period.
 | 
						|
        /// </summary>
 | 
						|
        public static Size MeasureText(Graphics g,
 | 
						|
            string s, Font font, Size csize, eTextFormat tf)
 | 
						|
        {
 | 
						|
            return (TextDrawing.MeasureString(g, s, font, csize, tf));
 | 
						|
 | 
						|
            if (font.Italic == true)
 | 
						|
                return (TextDrawing.MeasureString(g, s, font, csize, tf));
 | 
						|
 | 
						|
            Size sz1 = TextDrawing.MeasureString(g, ".", font, csize, tf);
 | 
						|
            Size sz2 = TextDrawing.MeasureString(g, s + ".", font, csize, tf);
 | 
						|
 | 
						|
            return (new Size(sz2.Width - sz1.Width, sz2.Height));
 | 
						|
        }
 | 
						|
 | 
						|
        public static Size MeasureText(Graphics g, string s, Font font)
 | 
						|
        {
 | 
						|
            return (TextDrawing.MeasureString(g, s, font));
 | 
						|
 | 
						|
            if (font.Italic == true)
 | 
						|
                return (TextDrawing.MeasureString(g, s, font));
 | 
						|
 | 
						|
            Size sz1 = TextDrawing.MeasureString(g, ".", font);
 | 
						|
            Size sz2 = TextDrawing.MeasureString(g, s + ".", font);
 | 
						|
 | 
						|
            return (new Size(sz2.Width - sz1.Width, sz2.Height));
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |