|
とりあえずやってみました。 このソースでフォントに色を付けて横に並べることはとりあえずできました。
private void Form1_Paint(object sender, PaintEventArgs e) { string text = "abcdefgzzzzzzzzzzz"; test(text, 0, 1, e.Graphics, Brushes.Black); test(text, 1, 1, e.Graphics, Brushes.Blue); test(text, 2, 1, e.Graphics, Brushes.Teal); test(text, 3, 1, e.Graphics, Brushes.YellowGreen); test(text, 4, 1, e.Graphics, Brushes.Thistle); test(text, 5, 10, e.Graphics, Brushes.Tomato); }
public void test(string text, int start, int length, Graphics g, Brush b) { StringFormat strfmt = StringFormat.GenericTypographic; strfmt.FormatFlags = strfmt.FormatFlags | StringFormatFlags.MeasureTrailingSpaces; float x; string s1; if (start != 0) { s1 = text.Substring(0, start); } string s2 = text.Substring(start, length);
if (start == 0) { x = 0; } else { x = g.MeasureString(text.Substring(0, start), this.Font, new PointF(0, 0), strfmt).Width; }
g.DrawString(text.Substring(start, length), this.Font, b, new PointF(x, 0), strfmt);
|