In WPF, in order to add a FixedPage
to a FixedDocument
in code one needs to:
var page = new FixedPage();
var pageContent = new PageContent();
((IAddChild)pageContent).AddChild(page);
This appears to be the only way, however:
The MSDN documentation explicitly says one shouldn't do this ('This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.'- PageContent.IAddChild.AddChild Method).
It's ugly to have to cast to an explicit interface implementation in order to add the content to PageContent
.
It's not simple to perform the basic operation of PageContent
.
The documentation doesn't actually explain how to do this and I couldn't find any other information on how to do it. Is there another way? A 'correct' way?
According to MSDN documentation, you simply add a FixedPage
object to the PageContent.Child
property and then add that to the FixedDocument
by calling the FixedDocument.Pages.Add
method.
For instance:
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;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With