水平方向と垂直方向の両方で複数のページに印刷する必要がある DataGrid があります。徹底的な検索に基づいて、私が持っている最も近い解決策は、@ http://www.codeproject.com/Articles/138233/Custom-Data-Grid-Document-Paginatorで見つかったものです。ただし、コンテンツとして ComboBox を持つ DataGridTemplateColumn を印刷すると、結果の印刷出力は空白のコンボボックスになります。以下は、印刷のスクリーンショットです。
http://www.filedropper.com/datagridprint
以下は、印刷中にテンプレート列を作成するために使用されるコードです。
private FrameworkElement GetTableCell(Grid grid, DataGridColumn column, object item, int columnIndex, int rowIndex)
{
FrameworkElement visualElement = null;
if (column is DataGridTemplateColumn)
{
DataGridTemplateColumn templateColumn = column as DataGridTemplateColumn;
ContentControl contentControl = new ContentControl();
contentControl.Focusable = true;
contentControl.ContentTemplate = templateColumn.CellTemplate;
contentControl.Content = item;
contentControl.SetValue(Grid.ColumnProperty, columnIndex);
contentControl.SetValue(Grid.RowProperty, rowIndex);
visualElement = contentControl;
}
上記のコードは基本的に新しいコンテンツ コントロールを作成し、グリッドに関連付けられた CellTemplate を新しく作成されたコンテンツに追加しますが、これは機能しません。上記のコードの修正があるかどうかを知りたいのですが、そうでない場合は、DataGrid を複数のページ (WYSIWYG) に印刷する実用的なソリューションがあります。
ご協力いただきありがとうございます。