Я пытаюсь центрировать строку на printdocument. Я сделал следующее с изображением, и оно работает, но похоже, что оно не работает с строкой.Graphics.DrawString center in printdocument width
Вот код, который я использовал для центрирования изображения
e.Graphics.DrawImage(logo, (e.MarginBounds.Width/2) - (logo.Width/2), height);
Текста я пытаюсь центр является поставкой из вкладки в TabControl
using (var sf = new StringFormat())
{
height = logo.Height + 15;
sf.LineAlignment = StringAlignment.Center;
sf.Alignment = StringAlignment.Center;
e.Graphics.DrawString(tabData.Text, new Font(this.Font.Name, 10),
new SolidBrush(tabData.ForeColor),
(e.MarginBounds.Width/2) - (txtData.Width/2), height, sf);
}
Я также попытался ниже, и используется string_size.Width/2 вместо txtData.Width
SizeF string_size = e.Graphics.MeasureString(tabData.Text, tabData.Font);
EDIT
Текущий полный код
float height = 0;
tabData.Text = "Date Range: 02/02/2010 - 08/09/2013"; //set just for testing
using (var logo = Properties.Resources.title)
{
e.Graphics.DrawImage(logo, e.PageBounds.Left + (e.MarginBounds.Width/2) - (logo.Width/2), height);
height = logo.Height + 15;
}
using (var sf = new StringFormat())
{
sf.LineAlignment = StringAlignment.Center;
sf.Alignment = StringAlignment.Center;
e.Graphics.DrawString(tabData.Text, new Font(this.Font.Name, 10), new SolidBrush(tabData.ForeColor), e.PageBounds.Left + (e.PageBounds.Width/2), height, sf);
}
Не понимаю, почему я должен использовать смесь PageBounds и MarginBounds к центру изображения, то с текстом будет центрировать либо с обеих MarginBounds или обоих PageBounds
Для логотипа Получает мне центр 'e.PageBounds.Left + (e.MarginBounds.Width/2) - (logo.Width/2)' Чтобы далеко вправо «e.MarginBounds.Left + (e.MarginBounds.Width/2) - (logo.Width/2) ' Справа ' e.PageBounds.Left + (e.PageBounds.Width/2) - (логотип.Width/2) ' Почему я должен использовать сочетание обоих, чтобы в итоге было центрировано изображение? – Tsukasa
Для текста в центр я могу использовать либо обе страницы, либо оба поля MarginBounds. Не понимаю, почему это работает для одного, а не для другого. – Tsukasa
Обновленный приведенный выше код, который содержит полный код в настоящее время в PrintDocument – Tsukasa