Codea:Drawstring перекрывает друг друга?
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 строку в поле. StringA с подчеркиванием, в то время как StringB этого не делает.
CodeB почти достигают того, чего я хочу, но stringA
и stringB
обмена в том же стиле. Поэтому я протестировал с помощью CodeA, но программа с ним заключается в том, что обе строки перекрывают друг друга. Могу ли я знать
'DrawString()' будет обрабатывать разрывы строк только за один вызов. Он не переносит состояния от одного вызова к другому. Поэтому, если вам нужно рисовать с разными стилями на нескольких строках, вам нужно указать местоположение, чтобы правильно рисовать строку для каждого вызова в 'DrawString()'. См. Отмеченный дубликат для получения подробной информации и ссылок на дополнительную информацию. –