Пользовательские поля в печати WPF - PullRequest
2 голосов
/ 01 марта 2011

Большинство образцов печати для WPF выглядят так:

        PrintDialog dialog = new PrintDialog();
        if (dialog.ShowDialog() == true)
        {
           StackPanel myPanel = new StackPanel();
           myPanel.Margin = new Thickness(15);
           Image myImage = new Image();
           myImage.Width = dialog.PrintableAreaWidth;
           myImage.Stretch = Stretch.Uniform;
           myImage.Source = new BitmapImage(new Uri("pack://application:,,,/Images/picture.bmp"));
           myPanel.Children.Add(myImage);
           myPanel.Measure(new Size(dialog.PrintableAreaWidth, dialog.PrintableAreaHeight));
           myPanel.Arrange(new Rect(new Point(0, 0), myPanel.DesiredSize));
           dialog.PrintVisual(myPanel, "A Great Image.");
        }

Что мне не нравится в этом, так это то, что они всегда устанавливают маржу на фиксированное значение. Но в PrintDialog у пользователя есть возможность выбрать отдельное поле, которое не имеет значения для образца. Если пользователь теперь выбирает поле, которое больше фиксированного поля, установленного программой, распечатка обрезается. Есть ли способ получить выбранное пользователем значение поля из PrintDialog?

ТИА Michael

1 Ответ

0 голосов
/ 01 марта 2011

Я вполне уверен, что поле, которое вы изменяете в PrintDialog, является настройкой драйвера принтера. Это нормально, что вы не можете получить доступ к настройке из .NET.

...