Невозможно обрезать строку в PrintDocument - PullRequest
1 голос
/ 10 июня 2010

У меня есть строка для печати на 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 Ответ

1 голос
/ 10 июня 2010

Я не смог обнаружить разницу между PrintPreview и рисованием на Panel с одинаковым кодом.

Чтобы получить эллипсы, вам нужно указать NoWrap:

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