Как правильно добавить PageContent/ FixedPage в FixedDocument в WPF?

В WPF, чтобы добавить FixedPage к FixedDocument в коде нужно:

var page = new FixedPage();
var pageContent = new PageContent();

((IAddChild)pageContent).AddChild(page);

Это, кажется, единственный способ:

  • В документации MSDN прямо сказано, что этого делать не следует ("Этот API поддерживает инфраструктуру.NET Framework и не предназначен для использования непосредственно из вашего кода." - метод PageContent.IAddChild.AddChild).

  • Это некрасиво приводить к явной реализации интерфейса, чтобы добавить контент в PageContent,

  • Это не просто выполнить основную операцию PageContent,

Документация на самом деле не объясняет, как это сделать, и я не смог найти никакой другой информации о том, как это сделать. Есть ли другой способ? "Правильный" путь?

1 ответ

Решение

Согласно документации MSDN, вы просто добавляете FixedPage возражать против PageContent.Child свойство, а затем добавить это к FixedDocument позвонив FixedDocument.Pages.Add метод.

Например:

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;
}
Другие вопросы по тегам