У меня есть окно WPF, которое я хочу выгрузить на принтер.Я нашел этот код, и это хорошее начало, но есть пара проблем с ним, и я не знаю, что я делаю.
PrintDialog printDialog = new PrintDialog ( );
if ( printDialog.ShowDialog ( ) == true )
{
PrintCapabilities capabilities = printDialog.PrintQueue.GetPrintCapabilities ( printDialog.PrintTicket );
double scale = Math.Min ( capabilities.PageImageableArea.ExtentWidth / this.ActualWidth,
capabilities.PageImageableArea.ExtentHeight / this.ActualHeight );
this.LayoutTransform = new ScaleTransform ( scale, scale );
Size size = new Size ( capabilities.PageImageableArea.ExtentWidth, capabilities.PageImageableArea.ExtentHeight );
this.Measure ( size );
this.Arrange ( new Rect
( new Point ( capabilities.PageImageableArea.OriginWidth, capabilities.PageImageableArea.OriginHeight ),
size ) );
printDialog.PrintVisual ( this, "Well Information" );
}
Я печатаю на обычную страницу 8,5x11, портрет,Я получаю страницу высотой около 9 дюймов (около 1 дюйма серые полосы сверху и снизу) и примерно половину экрана (слева направо).В идеале, я хочу получить альбомную печать (по умолчанию я понимаю, что пользователь может это изменить), которая показывает весь экран, масштабированный по мере необходимости.