无法修剪PrintDocument中的字符串

时间:2010-06-10 08:02:27

标签: c# winforms graphics printing gdi+

我使用下面的代码使用图形对象在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();
        }

1 个答案:

答案 0 :(得分:1)

我无法检测PrintPreview与使用相同代码绘制到Panel的区别。

要获得省略号,您必须指定NoWrap:

 new StringFormat { 
        Trimming = StringTrimming.EllipsisCharacter , 
        FormatFlags = StringFormatFlags.NoWrap}