Csharp/C Sharp/2D Graphics/StringAlignment

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Enuermate the StringAlignment value

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms;

class StringAlignmentRectangle: Form {

    public static void Main()
    {
         Application.Run(new StringAlignmentRectangle());
    }
    public StringAlignmentRectangle()
    {
         Text = "String Alignment (RectangleF in DrawString)";
         ResizeRedraw = true; 
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }     
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         Brush        brush    = new SolidBrush(clr);
         RectangleF   rectf    = new RectangleF(0, 0, cx, cy);
         string[]     strAlign = { "Near", "Center", "Far" };
         StringFormat strfmt   = new StringFormat();
  
         for (int iVert = 0; iVert < 3; iVert++){
             for (int iHorz = 0; iHorz < 3; iHorz++)
             {
                  strfmt.LineAlignment = (StringAlignment)iVert;
                  strfmt.Alignment     = (StringAlignment)iHorz;
      
                  grfx.DrawString(
                       String.Format("LineAlignment = {0}\nAlignment = {1}",
                                     strAlign[iVert], strAlign[iHorz]),
                       Font, brush, rectf, strfmt);
             }
         }    
    }

}

</source>


StringAlignment.Center

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms;

class HelloCenteredRectangle: Form {

    public static void Main() 
    {
         Application.Run(new HelloCenteredRectangle()); 
    }
    public HelloCenteredRectangle()
    {
         Text = "Hello Centered Using Rectangle";
         BackColor = SystemColors.Window;
         ForeColor = SystemColors.WindowText;
         ResizeRedraw = true;
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         Graphics     grfx   = pea.Graphics;
         StringFormat strfmt = new StringFormat();
  
         strfmt.Alignment     = StringAlignment.Center;
         strfmt.LineAlignment = StringAlignment.Center;
  
         grfx.DrawString("Hello, world!", Font, new SolidBrush(ForeColor),
                         ClientRectangle, strfmt);
    }

}

</source>


StringAlignment.Far

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms;

class FourCorners: Form {

    public static void Main()
    {
         Application.Run(new FourCorners());
    }
    public FourCorners()
    {
         Text = "Four Corners Text Alignment";
         BackColor = SystemColors.Window;
         ForeColor = SystemColors.WindowText;
         ResizeRedraw = true;
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         Graphics     graphics   = pea.Graphics;
         Brush        brush  = new SolidBrush(ForeColor);
         StringFormat strfmt = new StringFormat();
  
         strfmt.Alignment     = StringAlignment.Far;
         strfmt.LineAlignment = StringAlignment.Far;
         graphics.DrawString("Lower right corner", Font, brush, ClientSize.Width, ClientSize.Height, strfmt);
    }

}

</source>


StringAlignment.Near

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class FourCorners: Form {

    public static void Main()
    {
         Application.Run(new FourCorners());
    }
    public FourCorners()
    {
         Text = "Four Corners Text Alignment";
         BackColor = SystemColors.Window;
         ForeColor = SystemColors.WindowText;
         ResizeRedraw = true;
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         Graphics     graphics   = pea.Graphics;
         Brush        brush  = new SolidBrush(ForeColor);
         StringFormat strfmt = new StringFormat();
  
         strfmt.Alignment     = StringAlignment.Near;
         strfmt.LineAlignment = StringAlignment.Near;
         graphics.DrawString("Upper left corner", Font, brush, 0, 0, strfmt);
  
    }

}

</source>


String Alignment (PointF in DrawString)

<source lang="csharp"> using System; using System.Drawing; using System.Windows.Forms;

class StringAlignmentPoint: Form {

    public static void Main()
    {
         Application.Run(new StringAlignmentPoint());
    }
    public StringAlignmentPoint()
    {
         Text = "";
         ResizeRedraw = true; 
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height);
    }     
    protected void DoPage(Graphics grfx, Color clr, int cx, int cy)
    {
         Brush        brush    = new SolidBrush(clr);
         Pen          pen      = new Pen(clr);
         string[]     strAlign = { "Near", "Center", "Far" };
         StringFormat strfmt   = new StringFormat();
  
         grfx.DrawLine(pen, 0, cy / 2, cx, cy / 2);
         grfx.DrawLine(pen, cx / 2, 0, cx / 2, cy);
  
         for (int iVert = 0; iVert < 3; iVert += 2){
             for (int iHorz = 0; iHorz < 3; iHorz += 2)
             {
                  strfmt.LineAlignment = (StringAlignment)iVert;
                  strfmt.Alignment     = (StringAlignment)iHorz;
      
                  grfx.DrawString(
                       String.Format("LineAlignment = {0}\nAlignment = {1}",
                                     strAlign[iVert], strAlign[iHorz]),
                       Font, brush, cx / 2, cy / 2, strfmt);
             }
         }    
    }

}

</source>