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);
}
}