Печать записей Datagrid в WPF

Вопрос:Мне нужно только печатать записи данных. Я использовал один код, похожий на этот, но это тоже напечатал полосу прокрутки. Мне нужны только записи. PrintDialog printDlg = new PrintDialog(); printDlg.PrintVisual(grid1, "Grid Printing."); Ответ №1Привет для печати DataGrid в WPF вам нужно взять и использовать заданный код. Код Xaml

Вопрос:

Мне нужно только печатать записи данных. Я использовал один код, похожий на этот, но это тоже напечатал полосу прокрутки. Мне нужны только записи.

PrintDialog printDlg = new PrintDialog(); printDlg.PrintVisual(grid1, «Grid Printing.»); Ответ №1

Привет для печати DataGrid в WPF вам нужно взять <StackPanel> и использовать заданный код.

Код Xaml

<StackPanel> <DataGrid AutoGenerateColumns=»False» Margin=»12,0,0,0″ Name=»dataGrid1″ HorizontalAlignment=»Left» VerticalAlignment=»Top» ItemsSource=»{Binding}» AlternatingRowBackground=»LightGoldenrodYellow» AlternationCount=»1″> <DataGrid.Columns> <DataGridTemplateColumn Header=»Image» Width=»SizeToCells» IsReadOnly=»True»> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Image Source=»{Binding Path=Image}» Width=»100″ Height=»50″ /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> <DataGridTextColumn Header=»Make» Binding=»{Binding Path=Make}»/> <DataGridTextColumn Header=»Model» Binding=»{Binding Path=Model}»/> <DataGridTextColumn Header=»Price» Binding=»{Binding Path=Price}»/> <DataGridTextColumn Header=»Color» Binding=»{Binding Path=Color}»/> </DataGrid.Columns> </DataGrid> <Button Content=»Print» Click=»OnDataGridPrinting» Width=»80″ Height=»30″ /> </StackPanel>

И код .CS

private void OnDataGridPrinting(object sender, RoutedEventArgs e) { System.Windows.Controls.PrintDialog Printdlg = new System.Windows.Controls.PrintDialog(); if ((bool)Printdlg.ShowDialog().GetValueOrDefault()) { Size pageSize = new Size(Printdlg.PrintableAreaWidth, Printdlg.PrintableAreaHeight); // sizing of the element. dataGrid1.Measure(pageSize); dataGrid1.Arrange(new Rect(5, 5, pageSize.Width, pageSize.Height)); Printdlg.PrintVisual(dataGrid1, Title); } }

Надеюсь, это поможет вам

Это проверенный код.

Ответ №2

Поместите свой DataGrid в ViewBox, чтобы вы могли получить то, что хотите.:)

Оцените статью
Добавить комментарий