我使用下面的代码使用图形对象在PrintDocument
上打印一些字符串,我希望如果矩形区域小到适合整个字符串,它会显示用椭圆修剪它但修剪不适用于绘制的字符串,代码中有什么问题吗? (如果在窗体上绘制字符串,则表明它有效)
PrintDocument printDocument;
void print_PrintPage(object sender, PrintPageEventArgs e)
{
var g = e.Graphics;
var rect = new Rectangle(10, 10, 50, 50);
g.DrawRectangle(Pens.Red, rect);
g.DrawString("Draws the specified text string at the specified position",
Font, Brushes.Red,
rect,
new StringFormat { Trimming = StringTrimming.EllipsisCharacter });
}
private void printPreviewControl_Click(object sender, EventArgs e)
{
printPreviewControl.Document = printDocument;
printPreviewControl.Show();
}
答案 0 :(得分:1)
我无法检测PrintPreview与使用相同代码绘制到Panel的区别。
要获得省略号,您必须指定NoWrap:
new StringFormat {
Trimming = StringTrimming.EllipsisCharacter ,
FormatFlags = StringFormatFlags.NoWrap}