-2
CODEA:紐が重なっていますか?
Image imageChipsetName = new System.Drawing.Bitmap(photoWidth, photoHeight);
StringFormat strFormat = new StringFormat();
strFormat.Alignment = StringAlignment.Center;
strFormat.LineAlignment = StringAlignment.Center;
Graphics graphics = Graphics.FromImage(imageChipsetName);
graphics.DrawString(stringA + "\n",
new Font("Tahoma", 14, FontStyle.Underline), Brushes.Black,
new RectangleF(0, 0, photoWidth, photoHeight), strFormat);
graphics.DrawString(stringB,
new Font("Tahoma", 14), Brushes.Black,
new RectangleF(0, 0, photoWidth, photoHeight), strFormat);
CODEB:
Image imageChipsetName = new System.Drawing.Bitmap(photoWidth, photoHeight);
StringFormat strFormat = new StringFormat();
strFormat.Alignment = StringAlignment.Center;
strFormat.LineAlignment = StringAlignment.Center;
Graphics graphics = Graphics.FromImage(imageChipsetName);
graphics.DrawString(stringA + "\n"+stringB,
new Font("Tahoma", 14, FontStyle.Underline), Brushes.Black,
new RectangleF(0, 0, photoWidth, photoHeight), strFormat);
私は箱の中に2文字列を描画する必要があります。 StringBは下線スタイルで、StringBはスタイルではありません。
CodeBはほぼ同じですが、stringA
とstringB
は同じスタイルを共有しています。だから私はCodeAでテストしましたが、そのプログラムは両方の文字列が互いに重なっていることです。私が知っているかもしれない
'DrawString()'は、1回の呼び出しで改行のみを処理します。ある呼び出しから次の呼び出しに状態を持ちません。したがって、複数の行に異なるスタイルで描画する必要がある場合は、 'DrawString()'を呼び出すたびに文字列を正しく描画する場所を指定する必要があります。関連情報および追加情報へのリンクについては、重複したマークを参照してください。 –