打印FlowDocument + Collection

时间:2017-03-31 06:51:36

标签: c# wpf printing flowdocument

我正在尝试打印由FlowDocument组成的ItemsControl。如有必要,我想在多个页面上自动拆分。目前我不确定它为什么输出空白页面。我试图查找类似的问题,尽管他们没有太多我可以使用的信息。

我的FlowDocument看起来像这样:

<FlowDocument x:Class="PrintFlowDocument.Views.GoWithTheFlow1"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:local="clr-namespace:PrintFlowDocument.Views">
    <Paragraph>
        <ItemsControl ItemsSource="{Binding StringList}">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding}" TextWrapping="Wrap"/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </Paragraph>
</FlowDocument>

DataContext的{​​{1}}在实例化时设置,FlowDocument属性(当前)在VM的构造函数中初始化。

StringList

要打印文档,我正在使用GoWithTheFlow1 flow = new GoWithTheFlow1() { DataContext = new FlowVM() }; flow.PageHeight = 1122.5196850393702; flow.PageWidth = 793.70078740157476; //--- ObservableCollection<string> _StringList; public ObservableCollection<string> StringList { get { return _StringList; } set { if (_StringList != value) { _StringList = value; NotifyPropertyChanged(() => StringList); } } } 并将其打印用于XPS打印机的测试目的。

XpsDocumentWriter

我有什么问题吗?为什么它不显示ItemsControl +内容?

1 个答案:

答案 0 :(得分:0)

显然,DocumentPaginator中有no support for data-binding

我正在放弃此解决方案/尝试使用现有解决方案({{1}})。