/// <summary> /// Draw the text on the rectangle. /// </summary> /// <param name="Text"></param> /// <param name="rectangle"></param> /// <param name="fontDrawFlag"></param> /// <param name="color"></param> public void Draw(int layerIndex, string Text, System.Drawing.Rectangle rectangle, xPFT.Charting.Base.FontDrawFlags fontDrawFlag, System.Drawing.Color color, float opacity, float RotateAngle) { if(Text!=null) try { this.opacity = opacity; if (fontDrawFlag == xPFT.Charting.Base.FontDrawFlags.Left) textFormat.TextAlignment = SharpDX.DirectWrite.TextAlignment.Leading; else if (fontDrawFlag == xPFT.Charting.Base.FontDrawFlags.Right) textFormat.TextAlignment = SharpDX.DirectWrite.TextAlignment.Trailing; else if (fontDrawFlag == xPFT.Charting.Base.FontDrawFlags.Center) textFormat.TextAlignment = SharpDX.DirectWrite.TextAlignment.Center; drawRec.Width = rectangle.Width; drawRec.Height = textFormat.FontSize * 1.5f; try { if (curentColor != color) SetLineColor(color, opacity); device.layers[layerIndex].Transform = Matrix.RotationZ(RotateAngle) * Matrix.Translation(rectangle.X, rectangle.Y, 0); device.layers[layerIndex].DrawText(Text, textFormat, drawRec, brush, DrawTextOptions.Clip); device.layers[layerIndex].Transform = Matrix.Identity; } catch { } } catch (System.Exception ex) { throw ex; } }
/// <summary> /// Draw the text on the rectangle. /// </summary> /// <param name="Text"></param> /// <param name="rectangle"></param> /// <param name="fontDrawFlag"></param> /// <param name="color"></param> public void Draw(int layerIndex, string Text, System.Drawing.Rectangle rectangle, xPFT.Charting.Base.FontDrawFlags fontDrawFlag, System.Drawing.Color color, float opacity, float RotateAngle) { try { sprite.Begin(SpriteFlags.AlphaBlend); sprite.Transform = Matrix.RotationZ(RotateAngle) * Matrix.Translation(rectangle.X, rectangle.Y, 0); font.DrawText(sprite, Text, new SharpDX.Rectangle(0, 0, rectangle.Width, rectangle.Height * 2), (SharpDX.Direct3D9.FontDrawFlags)fontDrawFlag, Convertor.ColorConvertor(color, opacity)); sprite.Transform = Matrix.Identity; } catch { } finally { sprite.End(); } }
/// <summary> /// Draw the text on the graphics. /// </summary> public static void Draw(Graphics g, Point pos, string Text, System.Drawing.Rectangle rectangle, xPFT.Charting.Base.FontDrawFlags fontDrawFlag, System.Drawing.Color color, float opacity, float RotateAngle, System.Drawing.Font font) { //! Set the String Format. StringFormat sf = new StringFormat(); if (fontDrawFlag == xPFT.Charting.Base.FontDrawFlags.Left) { sf.Alignment = StringAlignment.Near; } else if (fontDrawFlag == xPFT.Charting.Base.FontDrawFlags.Right) { sf.Alignment = StringAlignment.Far; } else if (fontDrawFlag == xPFT.Charting.Base.FontDrawFlags.Center) { sf.Alignment = StringAlignment.Center; } //! Create A font from parent control font. rectangle.Height = (int)(font.SizeInPoints * 1.5); //! Translate the text. g.TranslateTransform(rectangle.X + pos.X, rectangle.Y + pos.Y); //! Rotate the text. if (RotateAngle != 0) { // g.TranslateTransform(-rectangle.Width / 2 - rectangle.Height / 2, 0); g.RotateTransform((float)(RotateAngle * 180 / Math.PI)); } System.Drawing.Font newFont = new System.Drawing.Font(font.FontFamily, font.Size * 0.8f, font.Style); rectangle.Height = (int)(newFont.SizeInPoints * 1.5); //! Draw the text. g.DrawString(Text, newFont, new SolidBrush(BrushMaker.SetOpacity(color, opacity)), new RectangleF(0, 0, rectangle.Width, rectangle.Height), sf); //! Reset the transform. g.ResetTransform(); }
/// <summary> /// Draw the text on the rectangle. /// </summary> /// <param name="Text"></param> /// <param name="rectangle"></param> /// <param name="fontDrawFlag"></param> /// <param name="color"></param> public void Draw(int layerIndex, string Text, System.Drawing.Rectangle rectangle, xPFT.Charting.Base.FontDrawFlags fontDrawFlag, System.Drawing.Color color, float opacity, float RotateAngle) { if (Text != null) // try { //this.opacity = opacity; if (fontDrawFlag == xPFT.Charting.Base.FontDrawFlags.Left) { textFormat.Alignment = StringAlignment.Near; } else if (fontDrawFlag == xPFT.Charting.Base.FontDrawFlags.Right) { textFormat.Alignment = StringAlignment.Far; } else if (fontDrawFlag == xPFT.Charting.Base.FontDrawFlags.Center) { textFormat.Alignment = StringAlignment.Center; } //drawRec.Width = rectangle.Width; //drawRec.Height = textFormat.FontSize * 1.5f; // renderTarget.DrawString(Text, font, brush, new PointF()); try { if (curentColor != color) { SetLineColor(color, opacity); } // renderTarget.TranslateTransform(); // renderTarget.RotateTransform(RotateAngle); // Graphics.FromImage(device.layers[layerIndex] renderTarget.DrawString(Text, font, brush, new RectangleF(rectangle.X, rectangle.Y, rectangle.Width, font.Size * 1.5f), textFormat); } catch { } } //catch (System.Exception ex) //{ // throw ex; //} }