【发布时间】:2021-11-10 01:04:21
【问题描述】:
我正在创建一个构建图表的应用程序。这些图表由添加到 Canvas 的 UserControls 组成。我想使用在 xaml 中创建的格式化 UserControl 打印这些图表的集合。
PrintDialog pd = new PrintDialog();
FixedDocument document = new FixedDocument();
FixedPage page = new FixedPage();
document.DocumentPaginator.PageSize = new Size(pd.PrintableAreaWidth,pd.PrintableAreHeight);
page.Width = document.DocumentPaginator.PageSize.Width;
page.Height= document.DocumentPaginator.PageSize.Height;
PageTemplate template = new PageTemplate();
template.canvas = BuildCanvasFunction();
FixedPage.SetTop(template,0);
FixedPage.SetLeft(template,0);
page.Children.Add(template);
PageContent content = new PageContent();
content.Child = page;
document.Pages.Add(content);
pd.PrintDocument(document.DocumentPaginator, "Document");
Template.Xaml 模板
<Grid>
<Grid.RowDefinition>
<RowDefinition Height="*"/>
<RowDefinition Height="6*"/>
</Grid.RowDefinition>
<TextBlock Text="Test" Grid.Row="0"/>
<Canvas Grid.Row="1" Name="canvas"/>
<Grid>
我遇到的问题是,尽管画布显示,但它的子项都没有。该模板仅显示一个空白画布。我已与调试器核对以确认画布具有所有未显示的子级。
模板中的 TextBlock 正在正确显示。模板的 xaml.cs 目前是空的,因为我没有对模板做任何事情,我只是用它来组织预先存在的控件。
Diagram 通常在 UI 中显示的顺序是:TabControl>TabItem>ScrollViewer>Canvas。此配置正确显示图表。将图表添加到模板时,子级无法显示。
【问题讨论】:
标签: c# wpf xaml wpf-controls