3

水平方向と垂直方向の両方で複数のページに印刷する必要がある 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) に印刷する実用的なソリューションがあります。

ご協力いただきありがとうございます。

4

0 に答える 0