WPF: Как вы печатаете в альбомном режиме? - PullRequest
5 голосов
/ 14 марта 2011

найдено эта функция онлайн, которая прекрасно работает ... за исключением того, что я не могу понять, как по умолчанию это печатать в альбомной ориентации.

private void PrintClick(object sender, RoutedEventArgs e)
{
  PrintDialog dialog = new PrintDialog();
  if (dialog.ShowDialog() == true)
  { dialog.PrintVisual(_PrintCanvas, "My Canvas"); }
}

Как на самом деле установить значение по умолчанию для печати моего содержимого wpf в альбомном режиме?

Ответы [ 3 ]

9 голосов
/ 26 апреля 2012
private void PrintClick(object sender, RoutedEventArgs e)
{
    PrintDialog dialog = new PrintDialog();
    if (dialog.ShowDialog() == true)
    { 
==>     printDialog.PrintTicket.PageOrientation = PageOrientation.Landscape;
        dialog.PrintVisual(_PrintCanvas, "My Canvas"); 
    }
}
3 голосов
/ 14 марта 2011

Оригинальный ответ На этот вопрос уже был дан ответ: Настройка ориентации страницы для Wpf DocumentViewer PrintDialog

Конец оригинального ответа

Редактировать:

Похоже, что есть проблема с PrintTicket и печатью визуальных изображений, проверьте: Тот же вопрос на MSDN

Оригинальный постерна форуме MSDN, опубликованном в последнем сообщении, который они использовали для захвата визуального изображения и преобразования его в xps-документ для печати, это позволит использовать PrintTicket для установки ориентации печатного документа.

2 голосов
/ 09 июня 2013
private void PrintClick(object sender, RoutedEventArgs e)
{
   PrintDialog dialog = new PrintDialog();
   if (dialog.ShowDialog() == true)
      { 
         dialog.PrintTicket.PageOrientation=System.Printing.PageOrientation.Landscape;
         dialog.PrintVisual(this, "First LandScape"); 
      }
 }

Вам необходимо добавить ссылку на ReachFramework.dll и System.Printing.dll каждый.

...