Как я могу использовать WPF FlowDocument или FixedDocument для создания печатной страницы из элементов управления на экране? - PullRequest
1 голос
/ 04 октября 2010

Я пытаюсь напечатать несколько элементов управления WPF (сетки данных, диаграммы и т. Д.), Которые отображаются на экране в моем приложении, но которые необходимо перестроить и дополнить другим текстом и т. Д.

Использование WPF FlowDocument или FixedDocument кажется очевидным способом составления и печати документов, но я изо всех сил пытаюсь добиться этого.

Я попытался создать VisualBrush из элемента (ов) и использовать его как заливку прямоугольника без успеха (прямоугольник вообще не отображается).

Кто-нибудь использовал FlowDocument / FixedDocument для этого и / или имел какой-нибудь пример кода, показывающий, как это достигнуто?

1 Ответ

0 голосов
/ 06 октября 2010

Обнаружено, что работает нормально, если FlowDocument отображается перед печатью (например, если он размещен в FlowDocumentReader).

XAML

    xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"

.

        <d3:ChartPlotter x:Name="plotter">
                <d3:Header TextBlock.FontSize="20">
                    Very simple chart
                </d3:Header>
            </d3:ChartPlotter>

.

            <FlowDocumentReader>
            <FlowDocument>
                <Paragraph>
                    <Run>Graph Header</Run>                        
                </Paragraph>
                <BlockUIContainer>
                    <Rectangle x:Name="GraphRectangle" Height="300"/>                            
                </BlockUIContainer>
            </FlowDocument>
        </FlowDocumentReader>

CS

    public MainWindow()
    {
        InitializeComponent();
        GraphRectangle.Fill = new VisualBrush(plotter);
    }
...