Beispiel #1
0
 public static void DrawText(System.Drawing.Graphics graphics, string text, System.Drawing.Font font, System.Drawing.Color foreColor, System.Drawing.Color backColor, System.Drawing.Rectangle bounds, Skybound.Windows.Forms.TextFormatFlags formatFlags)
 {
     if ((text == null) || (text.Length == 0) || (graphics == null) || (font == null) || bounds.Size == System.Drawing.Size.Empty || foreColor.Equals(System.Drawing.Color.Empty) || foreColor.Equals(System.Drawing.Color.Transparent))
     {
         return;
     }
     System.IntPtr intPtr1 = graphics.GetHdc();
     try
     {
         System.IntPtr intPtr2 = Skybound.Windows.Forms.TextRenderer.GetCachedFont(font);
         System.IntPtr intPtr3 = Skybound.Windows.Forms.TextRenderer.SelectObject(intPtr1, intPtr2);
         if (backColor.Equals(System.Drawing.Color.Empty) || backColor.Equals(System.Drawing.Color.Transparent))
         {
             Skybound.Windows.Forms.TextRenderer.SetBkMode(intPtr1, 1);
         }
         else
         {
             Skybound.Windows.Forms.TextRenderer.SetBkMode(intPtr1, 2);
             Skybound.Windows.Forms.TextRenderer.SetBkColor(intPtr1, System.Drawing.ColorTranslator.ToWin32(backColor));
         }
         int i = Skybound.Windows.Forms.TextRenderer.GetTextColor(intPtr1);
         Skybound.Windows.Forms.TextRenderer.SetTextColor(intPtr1, System.Drawing.ColorTranslator.ToWin32(foreColor));
         Skybound.Windows.Forms.TextRenderer.RECT rect = new Skybound.Windows.Forms.TextRenderer.RECT(bounds);
         Skybound.Windows.Forms.TextRenderer.DrawText(intPtr1, text, text.Length, ref rect, (int)formatFlags);
         Skybound.Windows.Forms.TextRenderer.SetTextColor(intPtr1, i);
         Skybound.Windows.Forms.TextRenderer.SelectObject(intPtr1, intPtr3);
     }
     finally
     {
         graphics.ReleaseHdc(intPtr1);
     }
 }
Beispiel #2
0
 public static System.Drawing.Size MeasureText(string text, System.Drawing.Font font, System.Drawing.Size extent, Skybound.Windows.Forms.TextFormatFlags formatFlags)
 {
     if ((text == null) || (text.Length == 0) || (font == null))
     {
         return(System.Drawing.Size.Empty);
     }
     if (extent == System.Drawing.Size.Empty)
     {
         extent = new System.Drawing.Size(32767, 0);
     }
     System.IntPtr intPtr1 = Skybound.Windows.Forms.TextRenderer.GetCachedFont(font);
     System.IntPtr intPtr2 = Skybound.Windows.Forms.TextRenderer.SelectObject(Skybound.Windows.Forms.TextRenderer.MeasureHdc, intPtr1);
     Skybound.Windows.Forms.TextRenderer.RECT rect = new Skybound.Windows.Forms.TextRenderer.RECT(new System.Drawing.Rectangle(0, 0, extent.Width, extent.Height));
     Skybound.Windows.Forms.TextRenderer.DrawText(Skybound.Windows.Forms.TextRenderer.MeasureHdc, text, text.Length, ref rect, (int)formatFlags | 1024);
     Skybound.Windows.Forms.TextRenderer.SelectObject(Skybound.Windows.Forms.TextRenderer.MeasureHdc, intPtr2);
     return(new System.Drawing.Size(rect.Right - rect.Left, rect.Bottom - rect.Top));
 }