在WPF中,为了在代码中添加FixedPage
到FixedDocument
,需要:
var page = new FixedPage();
var pageContent = new PageContent();
((IAddChild)pageContent).AddChild(page);
这似乎是唯一的方法,然而:
MSDN文档明确表示不应该这样做("此API支持。net框架基础架构,不打算直接从您的代码中使用。'- PageContent.IAddChild.AddChild方法).
为了将内容添加到
PageContent
,必须强制转换为显式接口实现是很难看的。PageContent
的基本操作并不简单。
文档实际上并没有解释如何做到这一点,我找不到关于如何做到这一点的任何其他信息。还有别的办法吗?"正确"的方式?
根据MSDN文档,您只需将FixedPage
对象添加到PageContent.Child
属性,然后通过调用FixedDocument.Pages.Add
方法将其添加到FixedDocument
。
public FixedDocument RenderDocument()
{
FixedDocument fd = new FixedDocument();
PageContent pc = new PageContent();
FixedPage fp = new FixedPage();
TextBlock tb = new TextBlock();
//add some text to a TextBox object
tb.Text = "This is some test text";
//add the text box to the FixedPage
fp.Children.Add(tb);
//add the FixedPage to the PageContent
pc.Child = fp;
//add the PageContent to the FixedDocument
fd.Pages.Add(pc);
return fd;
}